Build-infra with jigsaw, progress update
Erik Joelsson
erik.joelsson at oracle.com
Wed Jun 20 03:04:05 PDT 2012
Hello,
A progress update on the build-infra with jigsaw work. In short: I've
managed to bootstrap build a minimal workjdk and using this I have
compiled all java classes in langtools, corba, jaxp, jaxws and jdk in
module mode in one go, using the code layout from the shuffle-scripts.
Details follows.
The source is just in my local repo. It's dependant on the changes we
pushed into jdk/build last week. It also needs the moduleinfo files
which still haven't been pushed afaik. I would also like to clean it up
some before being ready for consumption by the jigsaw forest. I can
publish a webrev if anyone wants to try it out. Only tested on linux_x64
so far, but probably works on 32bit too.
Here is a description of the currently implemented bootstrap order. I
will experiment with some other approaches too. Feedback is welcome.
1. langtools-bootstrap
In langtools:
* Compile buildtools (stripprop and genstubs, this also includes an
almost full compile of the langtools source since genstubs depends on
it), target bootjdk
* Process properties and generate sources
* Generate stubs for module and jigsaw classes in jdk repo
* Compile langtools using the stubs, target bootjdk
2. hotspot
* Build hotspot (nothing new here)
3. jdk-base
* Generate sources in the jdk.base module
* Compile classes in jdk.base in legacy mode
* Import libraries and jars from hotspot
* Compile the native libraries in jdk.base (libzip, libjava, libjli,
libverify, libfdlibm, libnio, libnet)
* Generate jvm.cfg and currency.data
* Compile launchers (not all are needed at this point, but no
dependencies block compiling all of them)
* Construct the workjdk image (A separate image might not be needed, but
it keeps things cleaner) Copies the libs above+libjvm, the needed
launchers (java, javac, jmod and javadoc), the classes from jdk.base and
langtools bootstrap into workjdk/classes, and finally a jigsaw library
is created using jmod in workjdk/lib/modules.
4. corba-gensrc
* Generate sources in corba (IDL, properties...)
5. jdk-modules
* Generate the rest of the sources and data files in the jdk repo
* Use the workjdk javac to compile the newsrc and gensrc dirs of all
repos except hotspot. "Compiling 15795 files in batch BUILD_JDK_ALL"
Still missing:
* Compiling the rest of the native libs (not hard, just a lot of
redirecting the source to newsrc layout and fixing the shuffle scripts
to include all those native files)
* Demos and Samples?
* Images creation.
Next I will look at compiling the other repos separately as I suspect
his will be preferable.
/Erik
More information about the jigsaw-dev
mailing list