Move to JDK8

Erik Joelsson erik.joelsson at oracle.com
Tue Dec 13 06:36:29 PST 2011


Hello,

I just pushed a whole lot to the JDK8 build-infra-dev forest. I will try 
to explain what it's all about.

At the start of this project, we were working with the assumption that 
we would build more or less a complete solution and then get to push it 
in as a replacement for the old build system. Over time we have realized 
that would be hard, both for consumers getting it all in their face at 
once, and for us, having to make sure we cover everything in one go. We 
recently decided to instead try to get small chunks in at a time, and 
instead of replacing the old system, add it as an alternate system until 
we make the switch. This way, we will get a lot more visibility and 
people will be able to try it out in their actual daily work.

So far we have been working in a jdk7 forest, basically a copy of what 
was released as jdk7. But since the project is targeting jdk8, this 
doesn't really make much sense. It's time to move our work to a jdk8 forest.

So what is actually in my push? First I synced up with the JDK8 master. 
I then started moving the build infra changes in, one repo at a time. 
The following are done:

root
langtools
corba
jaxp (including committing the exploded drops)
jaxws (including committing the exploded drops)
hotspot

And still to be done:

jdk

In each repo (where applicable) there is a new directory "makefiles" in 
which the new makefiles reside. Exceptions to this are hotspot and the 
root. In hotspot the existing makefiles have been modified to be 
compatible with both the new and old. In the root, everything new is in 
the directory "common".

The common directory in root has the following layout:

common/src - Source files for small tools needed by the build.
common/makefiles - New makefiles including the main "Makefile"
common/bin - Utility executables (scripts)
common/autoconf - The configure script and the source for it.
common/autoconf/build-aux - The third party autoconf files that we still 
need to download separately.

To build using the new build system in the build-infra-dev jdk8 forest, 
change directory to "common/makefiles" and:

../autoconf/configure --disable-javac-server --disable-javac-deps 
--disable-javac-multi-core
make

Notes: The javac server currently isn't working, so it needs to be 
disabled. The jdk repo isn't converted yet so the build will fail when 
hotspot is done.

Building in the old way should work just as before.

As always, comments and suggestions are welcome!

/Erik



More information about the build-infra-dev mailing list