[PATCH] Fix building statically linked ARM EABI applications

Ricard Wanderlof ricard.wanderlof at axis.com
Tue Sep 22 15:26:56 UTC 2009

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 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

More information about the uClibc mailing list