My dynamically-linked executable no longer works with gcc 3.3 branch

Scott Gilbertson scottg@mantatest.com
Tue Feb 4 17:12:00 GMT 2003


I've moved to the 3.3 branch (my stuff was working on 3.2.1). My
static-linked binary runs OK, but the dynamic-linked one fails like so:
 ./mts5000.dbg.bin: /lib/libgcc_s.so.1: version `GCC_3.3' not found
(required by /usr/lib/libgcj.so.4)
Any idea what's going on?
"ldd -r mts5000.dbg.bin" tells me:
symbol _Unwind_FindEnclosingFunction, version GCC_3.3 not defined in file
libgcc_s.so.1 with link time reference (/usr/lib/libgcj.so.4)
nm tells me that the symbol is defined in libgcc_s:
# nm -l -S -A --defined-only /usr/lib/libgcc_s.so.1 | grep FindEnclosing
/usr/lib/libgcc_s.so.1:00002950 00000035 T _Unwind_FindEnclosingFunction
/home/scott/gcc/branch33/obj/gcc/../../gcc/gcc/unwind-dw2.c:207
_Unwind_FindEnclosingFunction is used in
libjava/gnu/gcj/runtime/natStackTrace.cc, and nowhere else that I can see:
 gnu::gcj::runtime::MethodRef *
 gnu::gcj::runtime::StackTrace::getCompiledMethodRef (gnu::gcj::RawData
*addr)
 {
 void *p = _Unwind_FindEnclosingFunction (addr);
 return gnu::gcj::runtime::StackTrace
 ::methodAtAddress ((gnu::gcj::RawData *)p);
 }
I am configured this way:
 ../gcc/configure
 --prefix=/usr
 --mandir=/usr/share/man
 --infodir=/usr/share/info
 --enable-shared
 --enable-threads=posix
 --disable-checking
 --host=i386-redhat-linux
 --enable-java-awt=xlib,gtk
 --enable-libgcj
 --enable-languages=c,c++,java
 --with-system-zlib
 --enable-__cxa_atexit
I compile with:
 gcj -c -o mts5000.dbg_o mts5000.jar --classpath=.
 gcj -O2 -c -o VersionInfo.o VersionInfo.java
 gcj -O2 -c -o Main.o Main.java
 gcj --main=Main
 -o mts5000.dbg.bin Main.o VersionInfo.o
 -g -L/usr/X11R6/lib -Dawt.toolkit=gnu.awt.xlib.XToolkit
 -u _CD_gnu_awt_xlib_XToolkit
 (a bunch more "-u" things)
 mts5000.dbg_o -l-gnu-awt-xlib


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /