Re: [patch] Don't encode the minor version in the gcj abi version

2016-04-28 Thread Andrew Haley
On 04/28/2016 12:45 PM, Matthias Klose wrote:
> yes, that looks good. Can't approve it myself.

OK.

Andrew.



Re: [patch] Don't encode the minor version in the gcj abi version

2016-04-28 Thread Matthias Klose

On 28.04.2016 12:52, Rainer Orth wrote:

Rainer Orth  writes:


Matthias Klose  writes:


Bumping the version from from 6.0.0 to 6.1.0 broke gcj, because the minor
version is still encoded in the gcj abi, not seen during development of the
6 series until it was bumped for the final release.


This is PR java/70839.


I just noticed that your patch is incomplete: it leaves the now unused
minor around and incorrectly talks about sub-minor versions...

Here's what I had in the PR instead:

2016-04-28  Rainer Orth  

PR java/70839
* decl.c (parse_version): Remove minor handling.


yes, that looks good. Can't approve it myself.



Re: [patch] Don't encode the minor version in the gcj abi version

2016-04-28 Thread Rainer Orth
Rainer Orth  writes:

> Matthias Klose  writes:
>
>> Bumping the version from from 6.0.0 to 6.1.0 broke gcj, because the minor
>> version is still encoded in the gcj abi, not seen during development of the
>> 6 series until it was bumped for the final release.
>
> This is PR java/70839.

I just noticed that your patch is incomplete: it leaves the now unused
minor around and incorrectly talks about sub-minor versions...

Here's what I had in the PR instead:

2016-04-28  Rainer Orth  

PR java/70839
* decl.c (parse_version): Remove minor handling.

# HG changeset patch
# Parent  acf979f160547bd8b9b207525f97c29f6c9a9a6e
Don't include minor version in GCJ ABI version

diff --git a/gcc/java/decl.c b/gcc/java/decl.c
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -507,7 +507,7 @@ static void
 parse_version (void)
 {
   const char *p = version_string;
-  unsigned int major = 0, minor = 0;
+  unsigned int major = 0;
   unsigned int abi_version;
 
   /* Skip leading junk.  */
@@ -525,13 +525,6 @@ parse_version (void)
   gcc_assert (*p == '.' && ISDIGIT (p[1]));
   ++p;
 
-  /* Extract minor version.  */
-  while (ISDIGIT (*p))
-{
-  minor = minor * 10 + *p - '0';
-  ++p;
-}
-
   if (flag_indirect_dispatch)
 {
   abi_version = GCJ_CURRENT_BC_ABI_VERSION;
@@ -540,9 +533,9 @@ parse_version (void)
   else /* C++ ABI */
 {
   /* Implicit in this computation is the idea that we won't break the
-	 old-style binary ABI in a sub-minor release (e.g., from 4.0.0 to
-	 4.0.1).  */
-  abi_version = 10 * major + 1000 * minor;
+	 old-style binary ABI in a minor release (e.g., from 6.1.0 to
+	 6.2.0).  */
+  abi_version = 10 * major;
 }
   if (flag_bootstrap_classes)
 abi_version |= FLAG_BOOTSTRAP_LOADER;

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: [patch] Don't encode the minor version in the gcj abi version

2016-04-28 Thread Rainer Orth
Matthias Klose  writes:

> Bumping the version from from 6.0.0 to 6.1.0 broke gcj, because the minor
> version is still encoded in the gcj abi, not seen during development of the
> 6 series until it was bumped for the final release.

This is PR java/70839.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: [patch] Don't encode the minor version in the gcj abi version

2016-04-28 Thread Andrew Haley
On 28/04/16 08:55, Matthias Klose wrote:
> Ok for the 6 branch and the trunk?

OK,

Andrew.



[patch] Don't encode the minor version in the gcj abi version

2016-04-28 Thread Matthias Klose
Bumping the version from from 6.0.0 to 6.1.0 broke gcj, because the minor 
version is still encoded in the gcj abi, not seen during development of the 6 
series until it was bumped for the final release.


The gcc-5-branch needs a slightly different approach, because we froze the abi 
version only with the 5.3.0 release.


--- gcc/java/decl.c (Revision 235458)
+++ gcc/java/decl.c (Arbeitskopie)
@@ -561,9 +561,10 @@
   else /* C++ ABI */
 {
   /* Implicit in this computation is the idea that we won't break the
-old-style binary ABI in a sub-minor release (e.g., from 4.0.0 to
-4.0.1).  */
-  abi_version = 10 * major + 1000 * minor;
+old-style binary ABI in a sub-minor release (e.g., from 5.0 to
+5.1).  Freeze the ABI on the gcc-5-branch with the value of the
+GCC 5.3 release.*/
+  abi_version = 10 * major + 1000 * 3;
 }
   if (flag_bootstrap_classes)
 abi_version |= FLAG_BOOTSTRAP_LOADER;

Ok for the 6 branch and the trunk?

Matthias
2016-04-28  Matthias Klose  

	* decl.c (parse_version): Don't encode the minor version in the abi
	version.

 
--- gcc/java/decl.c
+++ gcc/java/decl.c
@@ -540,9 +540,9 @@
   else /* C++ ABI */
 {
   /* Implicit in this computation is the idea that we won't break the
-	 old-style binary ABI in a sub-minor release (e.g., from 4.0.0 to
-	 4.0.1).  */
-  abi_version = 10 * major + 1000 * minor;
+	 old-style binary ABI in a sub-minor release (e.g., from 6.0 to
+	 6.1).  */
+  abi_version = 10 * major;
 }
   if (flag_bootstrap_classes)
 abi_version |= FLAG_BOOTSTRAP_LOADER;