------- Comment #14 from aph at redhat dot com 2008-12-10 12:46 ------- Subject: Re: [4.4 Regression] libgcj_bc for 4.3 and 4.4 are binary incompatible but have the same SONAME
rguenther at suse dot de wrote: >> Look at the exported symbols in the old version of libgcj_bc.so. >> >> Make sure that these symbols are exported: >> >> _Jv_JNI_PopSystemFrame >> _Jv_LookupInterfaceMethod >> _Jv_MonitorExit >> _Jv_RegisterResource > > readelf -s libgcj_bc.so | grep > '_Jv_RegisterResource\|_Jv_JNI_PopSystemFrame\|_Jv_LookupInterfaceMethod\|_Jv_MonitorExit' > 43: 0000000000001330 2 FUNC GLOBAL DEFAULT 12 > _Jv_LookupInterfaceMethod > > so only _Jv_LookupInterfaceMethod is there. Right, so that's probably what's causing the DT_NEEDED for libgcj.so.9. > But they are all provided by > both libgcj.so.9 and libgcj.so.10 (which is what /usr/lib64/libgcj_bc.so.1 > links to). The libgcj_bc.so is in /usr/lib64/gcc/x86_64-suse-linux/4.3 > and thus only used if you link with gcj 4.3. Right, so this is a bug in gcj 4.3. All symbols used by BC-compiled programs need to be in libgcj_bc.so. As has already been said, /usr/lib64/libgcj_bc.so.1 is not a link to libgcj.so.x in FSF gcj. Andrew. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38396