[PATCH 3/3] ldso: exclude -fasynchronous-unwind-tables from ldso CFLAGS

Joseph S. Myers joseph at codesourcery.com
Tue Sep 17 15:41:29 UTC 2013

On Tue, 17 Sep 2013, Rich Felker wrote:

> On Fri, Sep 13, 2013 at 10:31:53AM +0200, Filippo ARCIDIACONO wrote:
> > At least on ARM, building the ld.so with -fasynchronous-unwind-tables
> > for backtrace is creating a dependencies against libc through libgcc_eh.
> > So it needs to exclude this from the ldso cflags.
> Have you figured out why this is happening? I think it's a GCC bug
> which should be reported; we've had similar problems with bogus
> libgcc_eh dependencies on ARM in musl, but fortunately they're much
> easier for us to solve.

If the unwind info requires one of the standard __aeabi_unwind_cpp_pr* 
personality routines, the assembler generates an undefined symbol 
(R_ARM_NONE relocation) to ensure that personality routine is linked in, 
as required by EHABI (ARM IHI 0038A) ("Object producers must emit an 
R_ARM_NONE relocation from an exception-handling table section to the 
required personality routine to indicate the dependency to the linker.").  
As I explained in 
<https://sourceware.org/ml/libc-alpha/2012-05/msg00705.html>, for glibc 
it's in fact always OK to have stub rather than real versions of these 
personality routines in libc.so.

Joseph S. Myers
joseph at codesourcery.com

More information about the uClibc mailing list