Sources Bugzilla – Bug 4302
[regression] ld fails to link gcc-4.1's libstdc++ debug build
Last modified: 2007-04-22 21:46:33 UTC
binutils HEAD 20070329, configured with --enable-targets=powerpc64-linux-gnu fails to build the libstdc++ debug library from the gcc-4_1-branch; the library from the gcc-4_2-branch did build fine with the same ld. Note, that this is a build with HJ LU's patches applied (except binutils-shr). Will test a build from HEAD over the weekend. sh collect2.sh GNU ld (GNU Binutils for Ubuntu) 2.17.50.20070329 Supported emulations: elf32ppclinux elf32ppc elf32ppcsim elf64ppc /usr/bin/ld: .libs/libstdc++.so.6.0.8: undefined versioned symbol name frexpl@GLIBCXX_3.4.3 /usr/bin/ld: failed to set dynamic section sizes: Bad value collect2: ld returned 1 exit status testcase: http://people.ubuntu.com/~doko/tmp/libstd++-v3-gcc-4.1-powerpc.tar.bz2
same failure on sparc-linux-gnu (configured the same as in #4267)
HEAD 20070329 shows the same behaviour
What is the last working version in CVS for PPC and Sparc? I don't have PPC nor Sparc. If you can provide me testcacases for PPC and Sparc I can use with a cross linker, I will try to take a look.
I added http://people.ubuntu.com/~doko/tmp/libstd++-v3-gcc-4.1-powerpc-host=i386.tar.bz2 this is a ld configured with --enable-targets=powerpc-linux-gnu,powerpc64-linux-gnu the last binutils I sucessfully checked was 20070210.
(In reply to comment #4) > I added > http://people.ubuntu.com/~doko/tmp/libstd++-v3-gcc-4.1-powerpc-host=i386.tar.bz2 > this is a ld configured with --enable-targets=powerpc-linux-gnu,powerpc64-linux-gnu > > the last binutils I sucessfully checked was 20070210. > 20070210 linker doesn't work for me either: GNU ld version 2.17.50 20070210 ./ld-last: .libs/libstdc++.so.6.0.8: undefined versioned symbol name frexpl@GLIBCXX_3.4.3 ./ld-last: failed to set dynamic section sizes: Bad value make: *** [foo] Error 1 The problem may be in gcc or assembler.
src/debug/.libs/compatibility.o is wrong: [hjl@gnu-26 .libs]$ readelf -s compatibility.o | grep GLIBC 159: 00000000 88 FUNC GLOBAL DEFAULT 73 acosl@GLIBCXX_3.4.3 160: 00000000 88 FUNC GLOBAL DEFAULT 71 asinl@GLIBCXX_3.4.3 161: 00000000 96 FUNC GLOBAL DEFAULT 69 atan2l@GLIBCXX_3.4 162: 00000000 88 FUNC GLOBAL DEFAULT 67 atanl@GLIBCXX_3.4.3 163: 00000000 88 FUNC GLOBAL DEFAULT 65 ceill@GLIBCXX_3.4.3 164: 00000000 88 FUNC GLOBAL DEFAULT 63 coshl@GLIBCXX_3.4 165: 00000000 88 FUNC GLOBAL DEFAULT 61 cosl@GLIBCXX_3.4 166: 00000000 88 FUNC GLOBAL DEFAULT 59 expl@GLIBCXX_3.4 167: 00000000 88 FUNC GLOBAL DEFAULT 57 floorl@GLIBCXX_3.4.3 168: 00000000 96 FUNC GLOBAL DEFAULT 55 fmodl@GLIBCXX_3.4.3 169: 00000000 96 FUNC GLOBAL DEFAULT 53 frexpl@GLIBCXX_3.4.3 170: 00000000 96 FUNC GLOBAL DEFAULT 51 hypotl@GLIBCXX_3.4 171: 00000000 96 FUNC GLOBAL DEFAULT 49 ldexpl@GLIBCXX_3.4.3 172: 00000000 88 FUNC GLOBAL DEFAULT 47 log10l@GLIBCXX_3.4 173: 00000000 88 FUNC GLOBAL DEFAULT 45 logl@GLIBCXX_3.4 174: 00000000 96 FUNC GLOBAL DEFAULT 43 modfl@GLIBCXX_3.4.3 175: 00000000 96 FUNC GLOBAL DEFAULT 41 powl@GLIBCXX_3.4 176: 00000000 88 FUNC GLOBAL DEFAULT 39 sinhl@GLIBCXX_3.4 177: 00000000 88 FUNC GLOBAL DEFAULT 37 sinl@GLIBCXX_3.4 178: 00000000 88 FUNC GLOBAL DEFAULT 35 sqrtl@GLIBCXX_3.4 179: 00000000 88 FUNC GLOBAL DEFAULT 33 tanhl@GLIBCXX_3.4 180: 00000000 88 FUNC GLOBAL DEFAULT 31 tanl@GLIBCXX_3.4 Where are they coming from? I don't see them on Linux/x86-64.
for both targets GCC is configured --with-long-double-128, after applying http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864#c14 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864#c13
(In reply to comment #7) > for both targets GCC is configured --with-long-double-128, after applying > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864#c14 > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864#c13 > Those symbols are for glibc. Why do they have libstdc++ version names? I think it is a gcc bug. Please open a gcc bug instead.
so has anyone actually reported this to the gcc guys yet and if so where?
(In reply to comment #5) > (In reply to comment #4) > > I added > > http://people.ubuntu.com/~doko/tmp/libstd++-v3-gcc-4.1-powerpc-host=i386.tar.bz2 > > this is a ld configured with > --enable-targets=powerpc-linux-gnu,powerpc64-linux-gnu > > > > the last binutils I sucessfully checked was 20070210. > > > > 20070210 linker doesn't work for me either: rechecked with 20070103, which works for me; H.J., please could you recheck?
(In reply to comment #10) > (In reply to comment #5) > > (In reply to comment #4) > > > I added > > > http://people.ubuntu.com/~doko/tmp/libstd++-v3-gcc-4.1-powerpc-host=i386.tar.bz2 > > > this is a ld configured with > > --enable-targets=powerpc-linux-gnu,powerpc64-linux-gnu > > > > > > the last binutils I sucessfully checked was 20070210. > > > > > > > 20070210 linker doesn't work for me either: > > rechecked with 20070103, which works for me; H.J., please could you recheck? It is a gcc bug. The newer linker checks it. Please file a gcc bug report.