This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Re: [patch] [java] bump libgcj soname
- From: Matthias Klose <doko at ubuntu dot com>
- To: Andrew Haley <aph at redhat dot com>, Jakub Jelinek <jakub at redhat dot com>
- Cc: GCJ-patches <java-patches at gcc dot gnu dot org>, "gcc-patches at gnu dot org" <gcc-patches at gnu dot org>
- Date: Sun, 3 Jan 2016 12:38:17 +0100
- Subject: Re: [patch] [java] bump libgcj soname
- Authentication-results: sourceware.org; auth=none
- References: <55365991 dot 4030806 at ubuntu dot com> <20150421141125 dot GW1725 at tucnak dot redhat dot com> <55365BB2 dot 4080603 at ubuntu dot com> <20150421141924 dot GX1725 at tucnak dot redhat dot com> <55365EE0 dot 8070202 at ubuntu dot com> <20150421143747 dot GY1725 at tucnak dot redhat dot com> <5687E158 dot 7000401 at ubuntu dot com> <5687EF4D dot 5030304 at redhat dot com> <5687F269 dot 7030109 at ubuntu dot com> <5687F698 dot 20106 at redhat dot com>
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 <doko@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