New build system - from scratch experiences

Tim Bell tim.bell at oracle.com
Mon Oct 8 12:31:36 PDT 2012


Hello Michael:
> Hi - this isn't (yet) a cry for help, just a set of things I found as 
> I was trying to set up to build JDK7 with the new build system. Some 
> are pretty minor, some are just annoying. I'm happy to repeat any of 
> these with VERBOSE=.
>
> I'm not yet familiar with the build system, but I'll take a whack at 
> trying to debug the issues.

Thank you for taking a look at this and sending in feedback!

I wanted to double check on the version of the sources you are working 
with - is it 7 or 8?  Since JDK7 has been released, the active 
development work on build-infra moved to JDK8, with the project forest 
located here:

    http://hg.openjdk.java.net/build-infra/jdk8/

The JDK7 source tree is not under active development any longer.

I will post an update to the project web page ASAP:

   http://openjdk.java.net/projects/build-infra/

Tim

> Mike
>
>
>
> I'm running this on Win 7 64, in Cygwin.    The configure command I 
> used was:
>
>   ./configure --with-jvm-variant=client 
> --with-freetype=/cygdrive/c/freetype --with-memory-size=8192 \
>          --disable-javac-multi-core --disable-javac-deps 
> --disable-javac-server \
>          --with-boot-jdk=/cygdrive/c/PROGRA~2/Java/JDK17~1.0_0
>
> I found a number of issues, only one of which I'm not able to work 
> around quite yet  - (4) below.
>
> 1) ./configure -help gives "--with-memorysize", actual argument is 
> "--with-memory-size".  Help text is missing the second dash.
>
> 2) After configuring, typing make results in the following error: (See 
> below at >>> for my fix).
>
>
> ########################################################################
> ########################################################################
> ##### Entering jdk for target(s) all #####
> ########################################################################
>
> Compiling 118 files in batch BUILD_TOOLS
> c:\downloads\build-infra\jdk\make\tools\src\build\tools\dtdbuilder\DTDParser.jav 
>
> a:90: warning: non-varargs call of varargs method with inexact 
> argument type for
>  last parameter;
>         return MessageFormat.format(prop, args);
>                                           ^
>   cast to Object for a varargs call
>   cast to Object[] for a non-varargs call and to suppress this warning
> Note: Some input files use unchecked or unsafe operations.
> Note: Recompile with -Xlint:unchecked for details.
> 1 warning
> Compiling 243 properties into resource bundles
> Creating sun/util/LocaleDataMetaInfo.java from 444 found resources.
> Copying and cleaning 46 properties
> Generating CharacterDataLatin1.java
> Generating CharacterData00.java
> Generating CharacterData01.java
> Generating CharacterData02.java
> Generating CharacterData0E.java
> Generating CharacterDataUndefined.java
> Generating CharacterDataPrivateUse.java
> Creating JDWP.java and JDWPCommands.h from jdwp.spec
> Generating sun/misc/Version.java
> Generating sun/tools/jconsole/Version.java
> Building single threaded Java subdir
> make[3]: warning: -jN forced in submake: disabling jobserver mode.
> Begin Processing SUBDIRS: jvm redist verify fdlibm java sun_nio jli 
> main securit
> y util net nio awt    management npt java_crw_demo java_hprof_demo 
> logging inst
> rument
> ENTERING redist
> ENTERING redist 2
> XXXX 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-release/jdk/lib
> /jvm.lib: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-release/ho
> tspot/dist/lib/jvm.lib
> Begin Processing SUBDIRS:  fonts     sajdi
> ASSEMBLY_IMPORT: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-rel
> ease/jdk/lib/sa-jdi.jar
> ASSEMBLY_IMPORT: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-rel
> ease/jdk/bin/sawindbg.dll
> ASSEMBLY_IMPORT: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-rel
> ease/jdk/bin/sawindbg.map
> ASSEMBLY_IMPORT: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-rel
> ease/jdk/bin/sawindbg.pdb
> Done Processing SUBDIRS:  fonts     sajdi
> ASSEMBLY_IMPORT: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-rel
> ease/jdk/bin/client/jvm.dll
> Checking for /SAFESEH usage in: 
> /cygdrive/c/downloads/build-infra/build/windows-
> i586-client-release/jdk/bin/client/jvm.dll
> Checking for /NXCOMPAT usage in: 
> /cygdrive/c/downloads/build-infra/build/windows
> -i586-client-release/jdk/bin/client/jvm.dll
> Checking for /DYNAMICBASE usage in: 
> /cygdrive/c/downloads/build-infra/build/wind
> ows-i586-client-release/jdk/bin/client/jvm.dll
> Checking for banned dependencies in: 
> /cygdrive/c/downloads/build-infra/build/win
> dows-i586-client-release/jdk/bin/client/jvm.dll
> ASSEMBLY_IMPORT: 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-rel
> ease/jdk/bin/client/Xusage.txt
> Importing binaries from component CORBA_DIST
> Importing sources from component LANGTOOLS_DIST
> Importing sources from component CORBA_DIST
> Importing sources from component JAXP_DIST
> Importing sources from component JAXWS_DIST
> Import classes from J:/re/jdk/1.7.0/promoted/latest/binaries/windows-i586
> Importing classes from component LANGTOOLS_DIST
> Importing classes from component CORBA_DIST
> Importing classes from component JAXP_DIST
> Importing classes from component JAXWS_DIST
> Building 
> lib:/cygdrive/c/downloads/build-infra/build/windows-i586-client-release
> /jdk/bin/verify.dll
> Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
> check_code.c
> check_format.c
> Created 
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-release/jdk/
> tmp/java/verify/obj/verify.lcf
>
>>>> OK - copy jvm.lib from
> /cygdrive/c/downloads/build-infra/build/windows-i586-client-release/hotspot/windows_i486_compiler1/product 
> to this location to fix.
>
> LINK : fatal error LNK1181: cannot open input file 
> 'c:/downloads/build-infra/bui
> ld/windows-i586-client-release/jdk/lib/jvm.lib'
>
> ../../common/Library.gmk:166: recipe for target 
> `/cygdrive/c/downloads/build-inf
> ra/build/windows-i586-client-release/jdk/bin/verify.dll' failedmake
> [4]: *** 
> [/cygdrive/c/downloads/build-infra/build/windows-i586-client-release/jd
> k/bin/verify.dll] Error 157
> make[3]: *** [all] Error 1Makefile:65: recipe for target `all' failed
>
> LegacyMakefiles.gmk:37: recipe for target 
> `/cygdrive/c/downloads/build-infra/bui
> ld/windows-i586-client-release/jdk/_the.legacy_make' failedmake
> [2]: *** 
> [/cygdrive/c/downloads/build-infra/build/windows-i586-client-release/jd
> k/_the.legacy_make] Error 2
> Makefile:40: recipe for target `all' failedmake[1]: *** [all] Error 2
>
> /cygdrive/c/downloads/build-infra/Makefile:122: recipe for target 
> `jdk' failed
> make: *** [jdk] Error 2
>
>
> 3) The first time through (after fixing (2) above), the build fails at 
> the place noted below, but re-running make fixes the problem.
>
>
>
>> Microsoft (R) Manifest Tool version 5.2.3790.2076
>> Copyright (c) Microsoft Corporation 2005.
>> All rights reserved.
>>
>> mt.exe : general error c10100b1: Failed to load file
>> "c:/downloads/build-infra/b
>> uild/windows-i586-client-release/jdk/newobjs/unpack200.exe". The
>> system cannot f
>> ind the file specified.
>> CompileLaunchers.gmk:289: recipe for target
>> `/cygdrive/c/downloads/build-infra/b
>> uild/windows-i586-client-release/jdk/newobjs/unpackexe/unpack200.exe.manifest.mt 
>>
>> ' failedmake
>> [2]: ***
>> [/cygdrive/c/downloads/build-infra/build/windows-i586-client-release/jd
>> k/newobjs/unpackexe/unpack200.exe.manifest.mt] Error 31
>> make[2]: *** Waiting for unfinished jobs....
>> Microsoft (R) Incremental Linker Version 10.00.40219.01
>> Copyright (C) Microsoft Corporation.  All rights reserved.
>>
>> /out:c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpa 
>>
>> ck200.exe
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/zc 
>>
>> rc32.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/de 
>>
>> flate.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/tr 
>>
>> ees.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/za 
>>
>> dler32.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/co 
>>
>> mpress.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/zu 
>>
>> til.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/in 
>>
>> flate.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/in 
>>
>> fback.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/in 
>>
>> ftrees.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/libzip/in 
>>
>> ffast.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /bands.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /bytes.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /coding.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /main.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /unpack.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /utils.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpackexe 
>>
>> /zip.obj
>> c:/downloads/build-infra/build/windows-i586-client-release/jdk/newobjs/unpack200 
>>
>> .res
>> Makefile:40: recipe for target `all' failedmake
>> [1]: *** [all] Error 2
>> /cygdrive/c/downloads/build-infra/Makefile:122: recipe for target
>> `jdk' failed
>> make: *** [jdk] Error 2
>
>
> 4) after (3) above completes successfully, doing a "make images" fails 
> with (and this is where I'm stuck).  Strangely, the rt_jar_list file 
> exists at the location.:
>> ########################################################################
>> ########################################################################
>> ##### Entering jdk for target(s) images #####
>> ########################################################################
>>
>> Updating jdk/newdemo/jfc/CodePointIM/src.zip
>> make[3]: warning: -jN forced in submake: disabling jobserver mode.
>> >>>Making images @ Mon, Oct 08, 2012  1:35:05 PM ...
>> >>>Making initial-image-jre @ Mon, Oct 08, 2012 1:35:05 PM ...
>> WARNING: Path does not exist as file or directory:
>> java\util\zip\ZipFile$2.class
>>
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11GB2312$Decod
>> er.class
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11GB2312$Encod
>> er.class
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11GB2312.class
>>
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11GBK$Encoder.
>> class
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11GBK.class
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11KSC5601$Deco
>> der.class
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11KSC5601$Enco
>> der.class
>> WARNING: Path does not exist as file or directory:
>> sun\awt\motif\X11KSC5601.clas
>> s
>> jar: can't open:
>> \cygdrive\c\downloads\build-infra\build\windows-i586-client-rel
>> ease\images\tmp\jarfilelists\rt_jar_list (The system cannot find the
>> path specif
>> ied)
>> common/Release.gmk:718: recipe for target
>> `/cygdrive/c/downloads/build-infra/bui
>> ld/windows-i586-client-release/images/tmp/rt-orig.jar' failedmake[3]:
>> *** [/cygd
>> rive/c/downloads/build-infra/build/windows-i586-client-release/images/tmp/rt-ori 
>>
>> g.jar] Error 1
>>
>> Images.gmk:64: recipe for target
>> `/cygdrive/c/downloads/build-infra/build/window
>> s-i586-client-release/images/_the.images' failedmake[2]: ***
>> [/cygdrive/c/downlo
>> ads/build-infra/build/windows-i586-client-release/images/_the.images]
>> Error 2
>>
>> Makefile:65: recipe for target `images' failedmake[1]: *** [images]
>> Error 2
>>
>> /cygdrive/c/downloads/build-infra/Makefile:127: recipe for target
>> `images' faile
>> d
>> make: *** [images] Error 2
>
> 5) "make clean" followed by "make" fails.  Apparently "make clean" is 
> erasing too many files.
>
>> $ make
>> /cygdrive/c/downloads/build-infra/build/windows-i586-client-release/spec.gmk:81: 
>>
>>  /cygdrive/c/downloads/build-infra/build/windows-i586-client-release/localdevenv 
>>
>> .gmk: No such file or directory
>> make: *** No rule to make target
>> `/cygdrive/c/downloads/build-infra/build/window
>> s-i586-client-release/localdevenv.gmk'.  Stop.
>>
>> Mike at Mike-T530
>> /cygdrive/c/downloads/build-infra/build/windows-i586-client-relea
>> se
>> $ ls
>> config.h  configure-arguments  Makefile  spec.gmk  tmp
>>
>> Mike at Mike-T530
>> /cygdrive/c/downloads/build-infra/build/windows-i586-client-relea
>> se
>> $
>
>
>





More information about the build-infra-dev mailing list