New build system - from scratch experiences

Michael StJohns msj at nthpermutation.com
Mon Oct 8 13:18:04 PDT 2012


On 10/8/2012 3:31 PM, Tim Bell wrote:
> 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
>

Hi Tim -

Yup, this is against the jdk7 tree.

*sigh* Let me try this against 8, but then see if I can back port to 
7.    I want to make some submissions against 7 for later porting to 8 
on a mostly untouched part of the tree (javax.smartcardio), and dealing 
with the old build system has been painful. (more painful?).

Thanks - Mike




>> 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