On Tue, 22 Sep 2009, Joseph S. Myers wrote:

On Mon, 21 Sep 2009, Ricard Wanderlof wrote:

When linking applications statically for ARM using EABI, which use
__default_sa_restorer (e.g. via abort, as in 'int main(void) { abort(); }'),
this results in the following failure:

/trees/prod1/target/armv5-axis-linux-gnueabiucl
ibc/lib/libc.a(sigrestorer.os):(.ARM.exidx+0x0): undefined reference to
`__aeabi_unwind_cpp_pr1'

This can be fixed with the following patch. Doesn't seem to have any
detrimental effects. Anyone think of a reason this couldn't be commited?

Yes, this function is defined in libgcc_eh.a and the libc version is a dummy version that is *incorrect* for programs requiring unwinding and should only be used internally in libc. If it's not in your libgcc_eh.a or that is not being searched, your toolchain is misconfigured.

But then how come the libc version is included at all in the shared version of the library?

(Linking with libgcc_eh.a is an option, but it would seem reasonable that libc provides some sort of a fallback solution for simple cases where full unwinding and error handling is not wanted for whatever reason.)

/Ricard
--
Ricard Wolf Wanderlöf                           ricardw(at)axis.com
Axis Communications AB, Lund, Sweden            www.axis.com
Phone +46 46 272 2016                           Fax +46 46 13 61 30
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to