This is the mail archive of the
java-prs@gcc.gnu.org
mailing list for the Java project.
[Bug libgcj/38396] [4.4 Regression] libgcj_bc for 4.3 and 4.4 are binary incompatible but have the same SONAME
- From: "aph at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: java-prs at gcc dot gnu dot org
- Date: 10 Dec 2008 12:46:52 -0000
- Subject: [Bug libgcj/38396] [4.4 Regression] libgcj_bc for 4.3 and 4.4 are binary incompatible but have the same SONAME
- References: <bug-38396-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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