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
2016-01-03 Matthias Klose <d...@ubuntu.com>
* 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)