Re: [patch] [java] bump libgcj soname

Matthias Klose <[email protected]> Sun, 3 Jan 2016 12:38:17 +0100
Newsgroups gmane.comp.gcc.java.patches,gmane.comp.gcc.patches
Message-ID <[email protected]>
On 02.01.2016 17:11, Andrew Haley wrote:
> On 02/01/16 15:53, Matthias Klose wrote:
>>>> In any case, GCJ_CXX_ABI_VERSION should be changed to not include __GNUC_MINOR__
>>>>>> anymore.  Maybe for the gcc-5-branch, set it unconditionally to 3 so that it
>>>>>> won't change anymore with future releases from the gcc-5 branch?
>>>>
>>>> That's safe only if Classpath and libgcj are not changed at all.
>> why?
>
> Because of the way that gcj's linkage works.  If you change any of the
> vtable/itable indexes your program will crash.

Right, but this no change compared to the 4.x.y releases.

This is what I committed to the trunk.

So what to do with the gcc-5 branch? Apply the same patch to jvm.h, or fix the 
minor version to 3? The latter would be compatible at least with the 5.3 release.

Matthias
version.diff (text/x-diff, 1 KB)
2016-01-03  Matthias Klose  <[email protected]>

	* libtool-version: Bump soversion.
	* include/jvm.h (GCJ_CXX_ABI_VERSION): Don't encode __GNUC_MINOR__.

 
Index: libjava/include/jvm.h
===================================================================
--- libjava/include/jvm.h	(revision 232039)
+++ libjava/include/jvm.h	(working copy)
@@ -686,7 +686,7 @@
 					  loader.  */
 
 // These are used to find ABI versions we recognize.
-#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000 + __GNUC_MINOR__ * 1000)
+#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000)
 
 // This is the old-style BC version ID used by GCJ 4.0.0.
 #define OLD_GCJ_40_BC_ABI_VERSION (4 * 10000 + 0 * 10 + 5)
Index: libjava/libtool-version
===================================================================
--- libjava/libtool-version	(revision 232039)
+++ libjava/libtool-version	(working copy)
@@ -5,4 +5,4 @@
 # Note: When changing the version here, please do also update LIBGCJ_SONAME
 # in gcc/config/i386/cygwin.h and gcc/config/i386/mingw32.h.
 # CURRENT:REVISION:AGE
-16:0:0
+17:0:0