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