dl_iterate_phdr missing in libc
Carmelo Amoroso
carmelo73 at gmail.com
Sat Jan 12 08:33:33 UTC 2008
Mike Frysinger wrote:
> On Friday 11 January 2008, Carmelo AMOROSO wrote:
>> I'm facing a problem when statically linking an app with
>> sh4-linux-uclibc-g++
>> caused by the missing symbol dl_iterate_phdr as below:
>>
>> sh4-linux-uclibc-g++ -static main.c
>> /opt/STM/STLinux-2.3/devkit/sh4_uclibc/lib/gcc/sh4-linux-uclibc/4.2.1/libgc
>> c_eh.a(unwind-dw2-fde-glibc.o): In function `_Unwind_Find_FDE':
>> /home/macaroni/users/products/stm2.3/build/packages/stm-cross-gcc-sh4_uclib
>> c/BUILD/gcc-4.2.1/objdir/gcc/../../gcc/unwind-dw2-fde-glibc.c:430: undefined
>> reference to `dl_iterate_phdr'
>
> static is the devil ;)
Hi Mike,
yes, but it seems a lot of people in embedded world prefer it,
likely they have concerns on performance.
>
>> Indeed the symbols is defined into the ld.so (not used when statically
>> linked) and into libdl.a
>
> yep
>
>> but, being libgcc_eh.a requiring this symbol, it will not find it even
>> if -ldl is passed.
>
> what a pain huh
>
>> I've checked glibc and found that dl_iterate_phdr in into libc instead
>> od ld.so and libdl.a
>> A comment in uclibc dl-elf.c says explicitly:
>>
>> "we want this in ld.so and libdl.a but nowhere else"
>>
>> Could someone explain this to me ?
>
> it's a symbol only used by symbol related stuff which is why we put it there.
> the comment is to cover the fact we *dont* want it in say libdl.so.
>
>> I need to fix immediately into uclibc-nptl sh4
>
> isnt it always ?
>
>> adding the symbol into the libc too, as it is required by an our
>> customer on production, but I'd like to have a common fix also for the
>> trunk.
>
> looks like we'll need to relocate it to libc.a from libdl.a
> -mike
>
Yes, I don't want to keep it into libdl.a and libc.a, only ld.so and libc.a.
Anyway the dl_iterate_phdr implementation needs to handle the statically linked application too,
as glibc actually does. I'll provide a patch for review soon.
Further, basing on Bernds suggestion, I'm building gcc with a patch to use generic unwind-dw2
implementation. Anyway we are discussing what is the best solution for us.
Thanks,
Carmelo
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://busybox.net/cgi-bin/mailman/listinfo/uclibc
More information about the uClibc
mailing list