On Mon, Feb 04, 2008 at 05:35:17PM -0700, David Mosberger-Tang wrote: > Daniel, > > When I try to build libunwind for ARM in my cross-environment, I get this > error: > > ../../libunwind/src/mi/backtrace.c:41: error: 'mcontext_t' has no > member named 'arm_r0' > > I'm using the cross-tools available here: > > http://www.embeddedarm.com/linux/ARM.htm > > (look for "Linux Crosstool gcc-4.0.1-glibc-2.3.5"). I'm not terribly > familiar with ARM. Are these crosstools just obsolete or are there > multiple common ways of defining mcontext_t on ARM? As far as I can > see, the toolchain I'm using simply defines mcontext_t as an > array of integer and fp-registers (as is commonly done by the Linux kernel).
Current ARM glibc defines mcontext_t as a struct sigcontext and gets struct sigcontext from the kernel. That kernel definition has arm_r0. Looks like I fixed glibc on 2006-07-05; the definition before that in glibc didn't match reality (i.e. the ucontext that the kernel puts on the stack for RT signal handlers). So I don't recommend compatibility with broken glibc if you care about filling in your mcontext_t with anything sensible :-) Plug for some newer tools that I know work: http://www.codesourcery.com/gnu_toolchains/arm Thanks for merging! -- Daniel Jacobowitz CodeSourcery _______________________________________________ Libunwind-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/libunwind-devel
