New build system - from scratch experiences

Michael StJohns msj at nthpermutation.com
Mon Oct 8 11:17:44 PDT 2012


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.

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