print_ubacktrace() and ppc 32

Mark Wielaard mjw@redhat.com
Mon Jun 17 18:05:00 GMT 2013


On Mon, 2013-06-17 at 14:00 -0400, Lukas Berk wrote:
> > On Mon, 2013-06-17 at 16:24 +0200, Holger Brunck wrote:
> > > systemtap-2.3-32645/share/systemtap/runtime/stack.c:85:2: error: #error
> > > "Unsupported architecture"
> > 
> > This might be caused by the cross compiling, maybe something got
> > confused about the architecture. You get that when:
> > #ifndef STP_USE_DWARF_UNWINDER
> > powerpc (and x86_64) both should use the DWARF_UNWINDER. So you might
> > want to look at why that doesn't get defined in your case.
> 
> Unfortunately I believe this is because we don't actually support
> powerpc32 (only ppc64.h is defined in unwind.h).  So while the first
> error you're getting is being worked on (I'm currently working on
> PR10272[1] so hopefully it'll be resloved soon), the second error will
> be the show stopper here.

Yeah thanks. I had completely forgotten I only implemented the DWARF
unwinder for ppc64. Sorry. This was because when I wrote the powerpc
DWARF unwinder (kernel support) I only had access to ppc64 kernels.

So for a ppc32 kernel we do need a new runtime/unwind/ppc32.h
definitions file. It should not be that hard to write based on the
ppc64.h version and the ppc32 DWARF register mappings from
http://refspecs.linuxbase.org/elf/elfspec_ppc.pdf
But note that testing might be needed to see if those really map to
actually used DWARF register numbers generated by the toolchain. As can
be seen in the comments in ppc64.h sometimes mistakes have been made and
theory/spec and practice are not the same :{

Cheers,

Mark




More information about the Systemtap mailing list