dl_iterate_phdr missing in libc

Carmelo AMOROSO carmelo.amoroso at st.com
Fri Jan 11 13:14:47 UTC 2008


Hi All,
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/libgcc_eh.a(unwind-dw2-fde-glibc.o): 
In function `_Unwind_Find_FDE': 
/home/macaroni/users/products/stm2.3/build/packages/stm-cross-gcc-sh4_uclibc/BUILD/gcc-4.2.1/objdir/gcc/../../gcc/unwind-dw2-fde-glibc.c:430: 
undefined reference to `dl_iterate_phdr'

Indeed the symbols is defined into the ld.so (not used when statically 
linked) and into libdl.a
but, being libgcc_eh.a requiring this symbol, it will not find it even 
if -ldl is passed.

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 ? I need to fix immediately into 
uclibc-nptl sh4
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.

Cheers,
Carmelo





More information about the uClibc mailing list