[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