OpenJDK rebuilding on windows takes a long time

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Thu Feb 21 10:45:21 UTC 2013


On 2/21/2013 2:24 PM, Erik Joelsson wrote:
> If sjavac isn't working well for you, you could also try the 
> workaround we put in place. Read section 5 in the user guide here:
>
> http://openjdk.java.net/projects/build-infra/guide.html

    I tried to use the filter make jdk-only JDK_FILTER="javax/swing" and 
now JDK building takes about a minute.

    Thank you, it helps.

>
> /Erik
>
> On 2013-02-21 10:31, Alexander Scherbatiy wrote:
>>
>>   I have created the issue: 8008641 JDK 8 rebuilding time regression 
>> on Windows
>>
>>   Thanks,
>>   Alexandr.
>>
>> On 2/15/2013 7:18 PM, Alexander Scherbatiy wrote:
>>> 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