[Bug libgcj/38396] [4.4 Regression] libgcj_bc for 4.3 and 4.4 are binary incompatible but have the same SONAME
rguenther at suse dot de
gcc-bugzilla@gcc.gnu.org
Wed Dec 10 13:14:00 GMT 2008
------- Comment #15 from rguenther at suse dot de 2008-12-10 13:14 -------
Subject: Re: [4.4 Regression] libgcj_bc for 4.3 and 4.4
are binary incompatible but have the same SONAME
On Wed, 10 Dec 2008, aph at redhat dot com wrote:
> ------- 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.
Ok, I'm checking what happens on pristine 4.3 branch and report back.
Maybe it's somehow my own fault (the Debian libgcj_bc seems to have
the proper symbols).
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38396
More information about the Java-prs
mailing list