This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
libgcj missing symbol __data_start
- From: "Andreas Krebbel" <krebbel at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org, java at gcc dot gnu dot org, aph at redhat dot com
- Date: Tue, 25 Aug 2009 16:20:46 +0200
- Subject: libgcj missing symbol __data_start
Hi Andrew,
I see a lot of libjava fails on s390 when the -findirect-dispatch
switch is used. The testcases fail with:
/gcc-build/s390x-ibm-linux-gnu/libjava/testsuite/anonarray.exe: symbol
lookup error:
/gcc-build/s390x-ibm-linux-gnu/libjava/.libs/libgcj.so.11: undefined
symbol: __data_start
This symbol used to be in the .dynsym section of the main executable
after linking. I think it was exported since libgcj.so requires
it. But with your change libgcj_bc.so does not depend on libgcj.so
anymore and since the link step does not directly use libgcj.so it is
not loaded while linking the main executable what seems to lead to the
__data_start symbol to be ommitted from the .dynsym section.
rev 150852:
ldd libgcj_bc.so
libc.so.6 => /lib64/libc.so.6 (0x0000020000020000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000020000182000)
/lib/ld64.so.1 (0x000002aaaaaaa000)
rev 150853:
ldd libgcj_bc.so
libgcj.so.11 => /home/krebbel/build/gcc-build/s390x-ibm-linux-gnu/libjava/.libs/libgcj.so.11 (0x0000020000005000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000200033bc000)
librt.so.1 => /lib64/librt.so.1 (0x00000200033d7000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000200033e2000)
libz.so.1 => /lib64/libz.so.1 (0x00000200033e7000)
libc.so.6 => /lib64/libc.so.6 (0x00000200033ff000)
libgcc_s.so.1 => /home/krebbel/build/gcc-install/lib/../lib64/libgcc_s.so.1 (0x0000020003562000)
/lib/ld64.so.1 (0x000002aaaaaaa000)
Does that make sense to you? Could you please have a look if so?
I've verified that revision 150853 introduced the failures.
Bye,
-Andreas-