Re: [patch] Don't encode the minor version in the gcj abi version
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
On 28.04.2016 12:52, Rainer Orth wrote: Rainer Orthwrites: 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
Rainer Orthwrites: > 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
Matthias Klosewrites: > 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
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
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;