[buildroot 0000652]: rev 12223 breaks g++: undefined reference to `dl_iterate_phdr'
bugs at busybox.net
bugs at busybox.net
Mon Jan 23 15:57:52 UTC 2006
The following issue has been CLOSED
======================================================================
http://busybox.net/bugs/view.php?id=652
======================================================================
Reported By: ensc
Assigned To: uClibc
======================================================================
Project: buildroot
Issue ID: 652
Category: Architecture Specific
Reproducibility: always
Severity: major
Priority: normal
Status: closed
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 01-20-2006 04:33 PST
Last Modified: 01-23-2006 07:57 PST
======================================================================
Summary: rev 12223 breaks g++: undefined reference to
`dl_iterate_phdr'
Description:
SVN revision 12223 breaks the g++ compiler; now, I get:
| $ echo 'int main() { }' >bar.cc
| $ g++ bar.cc
| /usr/lib/gcc/arm-xscale-linux-uclibc/4.0.2/libgcc_s.so: undefined
reference to `dl_iterate_phdr'
Going back to revision 12211 of toolchain/gcc/4.0.2/100-uclibc-conf.patch
makes g++ work again.
======================================================================
----------------------------------------------------------------------
vapier - 01-20-06 10:09
----------------------------------------------------------------------
looks more like your toolchain is broken
libgcc_s.so should be linked against libc.so which should be linked
against ld-uClibc.so which contains the dl_iterate_phdr symbol
----------------------------------------------------------------------
ensc - 01-21-06 02:03
----------------------------------------------------------------------
ok, then it's an 'uClibc' bug. ld-uClibc.so does not contain this
symbol. The code
| #ifdef __USE_GNU
| #if ! defined LIBDL || (! defined PIC && ! defined __PIC__)
| int
| __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t
size, void *data), void *data)
in uClibc-0.9.28/ldso/ldso/dl-elf.c gets never be evaluated because
'__USE_GNU' is not defined.
----------------------------------------------------------------------
ensc - 01-21-06 02:30
----------------------------------------------------------------------
Correction: the static 'libdl.a' contains this symbol because in
ldso/libdl/libdl.c the '__USE_GNU' macro will be defined.
But this does not happen in ldso/ldso/
----------------------------------------------------------------------
vapier - 01-23-06 07:57
----------------------------------------------------------------------
this has been fixed in uClibc head already, search the uClibc mailing lists
for a patch for 0.9.28 if you wish to use that version
Issue History
Date Modified Username Field Change
======================================================================
01-20-06 04:33 ensc New Issue
01-20-06 04:33 ensc Status new => assigned
01-20-06 04:33 ensc Assigned To => uClibc
01-20-06 10:09 vapier Note Added: 0000959
01-21-06 02:03 ensc Note Added: 0000969
01-21-06 02:30 ensc Note Added: 0000970
01-23-06 07:57 vapier Note Added: 0000980
01-23-06 07:57 vapier Status assigned => closed
01-23-06 07:57 vapier Resolution open => fixed
======================================================================
More information about the uClibc-cvs
mailing list