OpenJDK rebuilding on windows takes a long time

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Fri Feb 15 15:18:02 UTC 2013


On 2/13/2013 8:45 PM, Kelly O'Hair wrote:
> You are pointing at the fastdebug jdk as your boot jdk, why?
>
> The official boot jdk for jdk8 is jdk7u7 we cannot guarantee anything else will work, although it should,
> when tracking down issues like this, you need to narrow down all the possible differences.
>
> I have no idea at this time what the 'sync state' is with the awt team forest.
> My recommendation would be to clone the official jdk8/jdk8 forest, which can be assumed to work since
> RE should have built it, or any integrator pushing changes into it should have built it.
> Create 2 forests of so you can do separate experiments on each.
>
> Then do the build from the root with a 7u7 jdk in your PATH (no need for the --with-boot-jdk option).
> Do a build without --enable-sjavac on one forest, then with it on the other.

       I made the proposed experiment.  My goal is to build debug 
version of JDK that does not take a long time to rebuild.

      I put  1.7.0_07-b32 to PATH variable so
    -------------------------------------------------------------------
     $ java -version
     java version "1.7.0_07"
     Java(TM) SE Runtime Environment (build 1.7.0_07-b32)
     Java HotSpot(TM) Client VM (build 23.3-b01, mixed mode)
    ------------------------------------------------------------------

     I used http://hg.openjdk.java.net/jdk8/jdk8 repository.
     Each time I used the clean repository.

    1) Build only debug version
            configure-arguments: --with-target-bits=32 --enable-debug

   ----- Build times -------
Start 2013-02-15 16:22:41
End   2013-02-15 16:40:01
00:00:45 corba
00:04:54 hotspot
00:00:38 jaxp
00:00:56 jaxws
00:09:18 jdk
00:00:41 langtools
00:17:20 TOTAL
-------------------------

   Build is successful.

2a) Build debug version with sjava (the same JDK in PATH, the same 
repository)
    configure-arguments: --with-target-bits=32 --enable-debug 
--enable-sjavac

100 errors
3 warnings
make[1]: *** 
[/cygdrive/c/Sun/OpenJDK/utils/config/jdk8-sjavac/build/windows-x86-normal-server-fastdebug/jaxws/jaxws_classes/javac_state] 
Error 127
make[1]: *** Waiting for unfinished jobs....
make: *** [jaxws-only] Error 2

  See the attached out.txt and out.txt  files in the attached zip.

2b) Build debug version with sjava (the same JDK in PATH, the same 
repository)
    configure-arguments: --with-target-bits=32 --enable-debug 
--enable-sjavac

    with the suggested patch that  checks "os.name" variable:
-----------------------------------------------------------
diff --git 
a/src/share/classes/com/sun/tools/sjavac/server/CompilerThread.java 
b/src/share/classes/com/sun/tools/sjavac/server/CompilerThread.java
--- a/src/share/classes/com/sun/tools/sjavac/server/CompilerThread.java
+++ b/src/share/classes/com/sun/tools/sjavac/server/CompilerThread.java
@@ -255,7 +255,7 @@
              }
              // Load visible sources
              Set<URI> visibleSources = new HashSet<URI>();
-            boolean fix_drive_letter_case = 
System.getProperty("os.name").toLowerCase().equals("windows");
+            boolean fix_drive_letter_case = 
System.getProperty("os.name").toLowerCase().startsWith("windows");
              for (;;) {
                  String l = in.readLine();
                  if (l == null)
-----------------------------------------------------------

Compilation fails with error:
-----------------------------------------------------------
The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: Java heap space
-----------------------------------------------------------
  See the attached out_patch.txt and err_patch.txt  files in the 
attached zip.


  Could you check this scenario (--with-target-bits=32 --enable-debug 
--enable-sjavac) on your side?


  Thanks,
  Alexandr.

> -kto


More information about the build-dev mailing list