Re: [patch] [java] bump libgcj soname

Matthias Klose <[email protected]> Sun, 3 Jan 2016 18:34:00 +0100
Newsgroups gmane.comp.gcc.java.patches,gmane.comp.gcc.patches
Message-ID <[email protected]>
On 03.01.2016 17:23, Andrew Haley wrote:
> On 03/01/16 15:52, Matthias Klose wrote:
>> No, libgcj versions up to 4.9.3 didn't change the value for releases taken from
>> the same branch. All of 4.9.0, 4.9.1, 4.9.2, 4.9.3 have the same
>> GCJ_CXX_ABI_VERSION. But 5.1, 5.2 and 5.3 have *different* GCJ_CXX_ABI_VERSIONs.
>>
>>>> Why change this rule now, at this stage of GCJ's life?
>> This was changed by the change of the version schema, an unintential change for
>> GCJ_CXX_ABI_VERSION.  I want to keep it that way, not change it with every
>> release from the gcc-5 branch.
>
> Because effectively we've done an arithmetic shift left on the GCC version
> numbering, I guess?  So where we would have had 5.1.1, 5.1.2, 5.1.3, we now
> have 5.1, 5.2, 5.3?

yes, exactly.

> If that's the idea, your patch is OK.

committed the attached patch to the gcc-5-branch.

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

	* include/jvm.h (GCJ_CXX_ABI_VERSION): Freeze the ABI for releases
	made from the gcc-5-branch.

 
Index: include/jvm.h
===================================================================
--- include/jvm.h	(revision 232040)
+++ include/jvm.h	(working copy)
@@ -686,7 +686,10 @@
 					  loader.  */
 
 // These are used to find ABI versions we recognize.
-#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000 + __GNUC_MINOR__ * 1000)
+// GCC 5 changed the versioning schema; the __GNUC_MINOR__ is not anymore
+// a part of a GCC release series.  Freeze the ABI on the gcc-5-branch with
+// the value of the GCC 5.3 release.
+#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000 + 3 * 1000)
 
 // 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)