John Cuthbertson 8f4579fe60 6994628: G1: Test gc/gctests/FinalizeTest05 fails (one live object is finalized)
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
2010-12-07 16:18:45 -08:00
2010-10-18 11:13:35 -04:00
2007-12-01 00:00:00 +00:00
2007-12-01 00:00:00 +00:00
2007-12-01 00:00:00 +00:00

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.

Languages
Java 73.9%
C++ 14.1%
C 7.9%
Assembly 2.7%
Objective-C 0.4%
Other 0.8%