_BOOTDIR1 on MS Windows platform

Anthony Petrov Anthony.Petrov at Sun.COM
Thu Apr 23 19:37:37 UTC 2009


On 4/23/2009 10:15 PM Kelly O'Hair wrote:
> The primary reason for the special case on Windows is the unreliability
> and slowness of the network connections.
> Builds using a local jdk vs. a J:/ mapped can be 5 hours long when
> they might normally be 1hr or less. These just come from reports I
> have gotten over the years, and it's really depends on the Windows
> machine, the network, etc.
> 
> Bottom line, builds are always faster and more reliable when all components
> are stored on local disk, and this is particularly true on Windows.
I totally agree with that. That's why my J: disk is NOT a network share, 
but a local directory that is mapped on the J: drive using the 'subst' 
command. This directory, however, gets synced with the real /java 
network share from time to time. So not setting the ALT_BOOTDIR does not 
slows down my builds in any way. What's more, it enables me to build by 
just issuing the make command, w/o setting ANY ALT_ variables in most cases.

> Having said all that, I ALWAYS set ALT_BOOTDIR to my local copy
> (and ALT_JDK_IMPORT_PATH too). So I probably would not be impacted
> by this change, but I bet quite a few people rely on this c:/jdk1.6.0
> default. With enough warning you might be able to change this.
I believe most people that might possibly be affected by this change 
reside on this mailing list. Who isn't - they probably either use the 
ALT_BOOTDIR, or, in the worst case, will be able to easily identify the 
problem since the reported error will include the /NO_BOOTDIR/ path to 
the javac compiler.

--
best regards,
Anthony


> 
> ---
> 
> I have been recently working on the JavaFX build dependency issues
> and although it's more ant based, some of the techniques could apply
> to making OpenJDK builds easier. Unfortunately, there is only 24hrs
> in a day. :^{
> 
> -kto
> 
> 
> Anthony Petrov wrote:
>> Hello,
>>
>> Back in 2007 we already discussed this issue with Kelly, but 
>> transitioning to Mercurial just stopped the work. So, I would like to 
>> revive this now.
>>
>> Here's a part of the output generated by `grep -r BOOTDIR make/*`:
>>
>>> make/common/shared/Defs-solaris.gmk:  _BOOTDIR1  
>>> =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH) 
>>>
>>> make/common/shared/Defs-solaris.gmk:  _BOOTDIR2  
>>> =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
>>> make/common/shared/Defs-windows.gmk:  _BOOTDIR1  
>>> =$(_system_drive)/jdk$(PREVIOUS_JDK_VERSION)
>>> make/common/shared/Defs-windows.gmk:  _BOOTDIR2  
>>> =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
>>> make/common/shared/Defs-linux.gmk:  _BOOTDIR1  
>>> =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH) 
>>>
>>> make/common/shared/Defs-linux.gmk:  _BOOTDIR2  
>>> =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
>>
>> One can notice that the _BOOTDIR1 is defined differently on MS Windows 
>> platform. I would like to propose a change so that its value would be 
>> the same as on other platforms. The SLASH_JAVA on MS Windows equals to 
>> the J: drive. So one could setup the same directory tree as on 
>> Linux/Solaris, use the subst command to make the directory the J: 
>> drive, and be able to build the jdk w/o specifying the ALT_BOOTDIR 
>> variable manually.
>>
>> Is there any objection to removing the 
>> $(_system_drive)/jdk$(PREVIOUS_JDK_VERSION) default path?
>>
>> -- 
>> best regards,
>> Anthony



More information about the build-dev mailing list