JDK-6872000 : G1: compilation fails on linux/older gcc
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs16
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2009-08-14
  • Updated: 2013-09-18
  • Resolved: 2010-01-15
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u18Fixed 7Fixed hs16Fixed
Description
When building HotSpot for JDK 6 we're getting the following error:

src/share/vm/gc_implementation/g1/concurrentMark.cpp: In
   member function `bool CSMarkOopClosure::drain()':
src/share/vm/gc_implementation/g1/concurrentMark.cpp:2404: parse
   error before `;' token

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/308762b2bf14
15-08-2009

SUGGESTED FIX I propose to fix it thus: --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -2400,10 +2400,7 @@ } // Now process this portion of this one. int lim = MIN2(next_arr_ind, len); - for (int j = arr_ind; j < lim; j++) { - do_oop(aobj->obj_at_addr<T>(j)); - } - + aobj->oop_iterate_range(this, arr_ind, lim); } else { obj->oop_iterate(this); }
14-08-2009

EVALUATION See Description.
14-08-2009