[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