[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] libunwind ARM port
From: |
Daniel Jacobowitz |
Subject: |
Re: [Libunwind-devel] libunwind ARM port |
Date: |
Mon, 4 Feb 2008 20:40:19 -0500 |
User-agent: |
Mutt/1.5.17 (2007-12-11) |
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