Re: [patch] Don't encode the minor version in the gcj abi version
Rainer Orth <[email protected]> Thu, 28 Apr 2016 12:52:01 +0200
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.java.patches |
|---|---|
| Message-ID | <[email protected]> |
Rainer Orth <[email protected]> writes: > Matthias Klose <[email protected]> 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 <[email protected]> PR java/70839 * decl.c (parse_version): Remove minor handling. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University
java-abi-minor-version.patch
(text/x-patch, 1.2 KB)
# 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 = 100000 * major + 1000 * minor;
+ old-style binary ABI in a minor release (e.g., from 6.1.0 to
+ 6.2.0). */
+ abi_version = 100000 * major;
}
if (flag_bootstrap_classes)
abi_version |= FLAG_BOOTSTRAP_LOADER;