This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] [java] bump libgcj soname


On 03.01.2016 15:17, Andrew Haley wrote:
On 03/01/16 11:38, Matthias Klose wrote:
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.

Neither.  If you link a program with libgcj then you need to recompile
it when a new version of libgcj comes along.  It has always been this
way.

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.

Matthias


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]