4468998, originally a Solaris 9 showstopper (P1/S1), was diagnosed as
requiring two bug fixes: the 32-bit and 64-bit JVMs on Solaris/SPARC
had to be distinguishable via the "os.arch" system property (sparc
vs. sparcv9), and the Linux port of the JDK needed to have the same
value for this property as the Solaris/x86 and Windows ports.
Formerly, the Linux port reported "i386" and the others "x86", due to
a bug in src/solaris/native/java/lang/java_props_md.c in the JDK
source tree.
Both of these changes were made and checked in to the Merlin tree.
Subsequently, a concern was voiced by Steve.Wilson@eng and
Mark.Reinhold@eng that this may break backward compatibility with
applications on Linux; apparently the fact that Linux returns "i386"
as the os.arch property dates back to 1.2.2. After further discussion
with Michael.Martak@eng (the original filer of 4468998), it was
discovered that the "i386" -> "x86" translation on Linux was not
required for the Solaris 9 fix.
This request is to allow the i386/x86 bug fix in java_props_md.c to
remain fixed, rather than being backed out, for the following reasons:
- It is more difficult to explain to end users that they will receive
different values for the os.arch property on the _same_
architecture but different operating systems.
- It is obviously a bug, not an intended feature.
- Just because a bug is three years old does not mean that it can not
or should not be fixed.
- The values of system properties are not publicly specified, and are
allowed to change at any time.
Risk assessment:
Existing applications on Linux may break (failing to find native
libraries, for example). However, given the fact that there has been a
discrepancy in the os.arch value across platforms for so long, it is
likely that customers are already translating one value into the
other. Internal testing has not identified any problems related to
this change, which first appeared in 1.4 build 69.
requiring two bug fixes: the 32-bit and 64-bit JVMs on Solaris/SPARC
had to be distinguishable via the "os.arch" system property (sparc
vs. sparcv9), and the Linux port of the JDK needed to have the same
value for this property as the Solaris/x86 and Windows ports.
Formerly, the Linux port reported "i386" and the others "x86", due to
a bug in src/solaris/native/java/lang/java_props_md.c in the JDK
source tree.
Both of these changes were made and checked in to the Merlin tree.
Subsequently, a concern was voiced by Steve.Wilson@eng and
Mark.Reinhold@eng that this may break backward compatibility with
applications on Linux; apparently the fact that Linux returns "i386"
as the os.arch property dates back to 1.2.2. After further discussion
with Michael.Martak@eng (the original filer of 4468998), it was
discovered that the "i386" -> "x86" translation on Linux was not
required for the Solaris 9 fix.
This request is to allow the i386/x86 bug fix in java_props_md.c to
remain fixed, rather than being backed out, for the following reasons:
- It is more difficult to explain to end users that they will receive
different values for the os.arch property on the _same_
architecture but different operating systems.
- It is obviously a bug, not an intended feature.
- Just because a bug is three years old does not mean that it can not
or should not be fixed.
- The values of system properties are not publicly specified, and are
allowed to change at any time.
Risk assessment:
Existing applications on Linux may break (failing to find native
libraries, for example). However, given the fact that there has been a
discrepancy in the os.arch value across platforms for so long, it is
likely that customers are already translating one value into the
other. Internal testing has not identified any problems related to
this change, which first appeared in 1.4 build 69.
- relates to
-
JDK-4468998 System property "os.arch" is not returning consistent values
-
- Resolved
-