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