mirror of
https://github.com/openjdk/jdk.git
synced 2026-04-05 04:31:36 +00:00
The Solaris Studio 12 update 1 C++ compiler was incorrectly re-ordering the reads of an object's mark word in oopDesc::forward_to_atomic(). This opened a small window where one thread could execute the successful CAS path even though another thread had already successfully forwarded the object. This could result in an object being copied twice. The code in oopDesc::forward_to_atomic() was changed to read the mark word once. Reviewed-by: ysr, tonyp
README:
This file should be located at the top of the OpenJDK Mercurial repository
forest. This top or enclosing repository will include a "make" directory,
and a Makefile at the very top of the repository.
It should also include the 6 repositories: "jdk", "hotspot", "langtools",
"corba", "jaxws" and "jaxp".
See http://openjdk.java.net/ for more information about the OpenJDK.
Simple Build Instructions:
1. Download and install a JDK 6 from
http://java.sun.com/javase/downloads/index.jsp
Set the environment variable ALT_BOOTDIR to the location of this JDK 6.
2. Download and install the Binary Plugs for the most recent JDK7 from
http://download.java.net/openjdk/jdk7/
Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
these binary plugs.
3. Check the sanity of doing a build with the current machine:
gnumake sanity
See README-builds.html if you run into problems.
4. Do a complete build of the jdk:
gnumake all
The resulting JDK image should be found in build/*/j2sdk-image
where gnumake is GNU make 3.78.1 or newer, /usr/bin/make on Linux and
/usr/sfw/bin/gmake or /opt/sfw/bin/gmake on Solaris.
Description
Languages
Java
73.9%
C++
14.1%
C
7.9%
Assembly
2.7%
Objective-C
0.4%
Other
0.8%