building part of jdk 8

Kelly O'Hair kelly.ohair at oracle.com
Mon Feb 13 21:13:46 UTC 2012


On Feb 13, 2012, at 12:12 PM, Pete Brunet wrote:

> On 2/13/12 1:35 PM, Kelly O'Hair wrote:
>> Just a few comments below...
>> 
>> On Feb 13, 2012, at 9:08 AM, Pete Brunet wrote:
>> 
>>> This worked for me today for building just awt:
>>> 
>>> This is in my bat file.  The first two sets are what resolved my issue.
>>> set ALT_OUTPUTDIR=c:/OpenJDK/jdk8/build/windows-i586-fastdebug
>>> set
>>> ALT_JDK_IMPORT_PATH=c:/OpenJDK/jdk8/build/windows-i586-fastdebug/j2sdk-image
>> The above two settings make no sense to me.
>> 
>> ALT_OUTPUTDIR is supposed to point at the directory where you want the build results to go.
>> One of the directories created is the j2sdk-image. This is a huge disk write area.
> I think I needed this to make my partial build use the same directory as
> my fastdebug_build full build.

Understood. That's a perfectly valid reason.

>> 
>> ALT_JDK_IMPORT_PATH is something you set when you are doing partial builds, e.g.
>> not building hotspot. It needs to point at some place that is pretty golden and steady, for
>> a place to get parts of the jdk image that you are not building.
>> You have it set to the same place you are building. :^(  That seems fishy to me.
>> I would have done a full build, moved or copied j2sdk-image to some place safe, and
>> had ALT_JDK_IMPORT_PATH refer to that copy, where it would be safe from destruction
>> during the build.
> I only build parts of awt and swing so maybe I've been lucky.  In any
> event I made that change.
>> 
>>> set ALT_BOOTDIR=C:/Progra~1/Java/jdk1.7.0_02
>> The official boot jdk for jdk8 is actually the first shipping jdk7, although 7u2 should work,
>> our release engineering and automated build systems use jdk7 fcs.
>> 
>>> set ALT_FREETYPE_HEADERS_PATH=C:/Users/Pete/freetype-2.4.8/include
>>> set ALT_FREETYPE_LIB_PATH=C:/Users/Pete/freetype-2.4.8/objs/win32/vc2010
>>> set ANT_HOME=C:/Progra~2/apache-ant-1.7.1
>>> set ALT_MSDEVTOOLS_PATH=C:/Progra~2/MICROS~1/Windows/v7.0A/bin
>> Not sure why ALT_MSDEVTOOLS_PATH is needed. Did you find this necessary for some reason?
>> 
>>> set CLASSPATH=
>>> set PATH=C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;
>>> set CYGWIN=nodosfilewarning
>>> cd c:\Users\Pete\cygwin\bin
>>> bash --login -i
>> This bash command will add /usr/bin to the PATH, and convert PATH to the CYGWIN world.
> Do I need to change something?

No you are perfectly fine.  I was just commenting that the PATH setting has changed.
I always keep track of when PATH changes.

>> 
>>> Then at the cygwin command line:
>>> eval `bin/vsvars.sh -v10 -32`
>> Perfect. That adjusts PATH, LIB, INCLUDE, etc, all for the Visual Studio compiler.
>> 
>>> cd /cygdrive/c/OpenJDK/jdk8/jdk/make/sun/awt/
>>> make ARCH_DATA_MODEL=32 2>&1 | tee build.log
>> Yup.
>> 
>>> Note: I suspect I don't need wbem in my path; I'll remove it the next
>>> time I do a build.
>> I've never been sure about Wbem needing to be in the system path. Let me know what you find out.
> Rebuilding after tweaking awt_Component.cpp worked fine without this. 
> I'll report back at some other time after doing a full rebuild.

http://www.pcreview.co.uk/forums/do-need-wbem-path-statement-t2330116.html

My tendency is to leave Wbem in PATH. Not sure we need it, but why vary the standard Windows
PATH and ask for trouble? ;^)

-kto

>> 
>> ----
>> So this is Windows 7 right?
>> Is it Windows 7 X64 or X86? (32 or 64 bit OS)
> 64 bit Windows 7
>> Do you have any anti-virus software installed, and any special settings?
> I have Norton 360 and for a full build I disable auto-protect.  I don't
> bother disabling that for a partial build.
>> Is this the latest CYGWIN? (what does uname -a say?)
> 1.7.0 (I dropped back from using 1.7.9 and so far this has been working,
> but I haven't done enough full builds yet to be sure.)
> 
> Pete
>> 
>> There have been reports of problems with Windows 7 building, possibly involving CYGWIN and McAfee
>> colliding somehow. Just curious.
>> 
>> -kto
>> 
>>> Pete
>>> 
>>> On 2/2/12 2:19 PM, Pete Brunet wrote:
>>>> On 2/1/12 10:54 PM, Pete Brunet wrote:
>>>>> On 1/23/12 9:39 AM, Pete Brunet wrote:
>>>>>> In the past I was able to build part of jdk 8 but that is not currently
>>>>>> working although I am able to do a full 32 bit build.  I've recently
>>>>>> moved from XP to W7 so my environment might not be set up quite right
>>>>>> yet.  Here's what I do...
>>>>>> 
>>>>>> // These are done in a bat file before I do any makes
>>>>>> set ALT_BOOTDIR=C:/Progra~1/Java/jdk1.7.0_02
>>>>>> set ALT_FREETYPE_HEADERS_PATH=C:/Users/Pete/freetype-2.4.8/include
>>>>>> set ALT_FREETYPE_LIB_PATH=C:/Users/Pete/freetype-2.4.8/objs/win32/vc2010
>>>>>> set ANT_HOME=C:/Progra~2/apache-ant-1.7.1
>>>>>> set ALT_MSDEVTOOLS_PATH=C:/Progra~2/MICROS~1/Windows/v7.0A/bin
>>>>>> set CLASSPATH=
>>>>>> set PATH=C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;
>>>>>> set CYGWIN=nodosfilewarning
>>>>>> cd c:\Users\Pete\cygwin\bin
>>>>>> bash --login -i
>>>>>> 
>>>>>> // These are done at the command line
>>>>>> eval `bin/vsvars.sh -v10 -32`
>>>>>> cd /cygdrive/c/OpenJDK/jdk8/jdk/make/java/awt/
>>>>>> make ARCH_DATA_MODEL=32 FASTDEBUG=true 2>&1 | tee build.log
>>>>>> 
>>>>>> The error I am getting is
>>>>>> 
>>>>>> make: *** No rule to make target
>>>>>> `../../../build/windows-i586/btjars/compileproperties.jar', needed by
>>>>>> `compile_all_props'.  Stop.
>>>>> When building below the top level, for some reason a partial build
>>>>> directory is being created in jdk8/jdk.  When doing a full build from
>>>>> the top level the only build directory I see is the one in jdk8.  It
>>>>> appears that ../../../build/... is using the build under jdk rather than
>>>>> the build under the top level.
>>>>> 
>>>>> Tonight I saw a similar failure when trying to rebuild JLabel.java from jdk:
>>>>> 
>>>>> make[2]: Entering directory `/cygdrive/c/OpenJDK/jdk8/jdk/make/javax/swing'
>>>>> make[2]: *** No rule to make target `javax/swing/JLabel', needed by
>>>>> `../../../build/windows-i586/tmp/com/javax.swing/.classes.list'.  Stop.
>>>>> 
>>>>> and when trying to build directly at .../jdk/make/javax/swing, i.e.
>>>>> 
>>>>> make: *** No rule to make target `javax/swing/JLabel', needed by
>>>>> `../../../build/windows-i586/tmp/com/javax.swing/.classes.list'.  Stop.
>>>> The JLabel issue was caused by the existence of
>>>> ...\jdk\src\share\classes\javax\swing\JLabel - Copy.java.  (This is
>>>> Windows' scheme for copies.).  However, that wouldn't explain the use of
>>>> a build directory under jdk (instead of under the top level), i.e. my
>>>> original problem might have been caused by using the wrong build dir:
>>>> 
>>>> make: *** No rule to make target
>>>> `../../../build/windows-i586/btjars/compileproperties.jar', needed by
>>>> `compile_all_props'.  Stop.
>>>> 
>>>>> In case it's helpful jdk/build contains these directories:
>>>>> bin
>>>>> btbins
>>>>> btclasses
>>>>> btjars
>>>>> classes
>>>>> gensrc
>>>>> include
>>>>> lib
>>>>>> Since the above has windows-i586 instead of windows-i586-debug it looks
>>>>>> like I need to add another variable when invoking make.
>>>>>> 
>>>>>> Pete




More information about the build-dev mailing list