New builds from the build-infra team

Kelly O'Hair kelly.ohair at oracle.com
Thu Nov 1 11:38:07 PDT 2012


Pardon the wide email, but this impacts everyone building the OpenJDK jdk8/jdk8 derived forests.

Please only reply to the build-infra-dev mailing list, or just me.

With some recent integrations from the build-infra project into jdk8/jdk8 repositories, the build-infra team
would like to get more exposure of the new builds. These jdk8/jdk8 changes will start showing up in various
jdk8 and team forests over the next few weeks. The default is still the old builds, but both builds work in most
cases for OpenJDK as far as we know.

At a very high level, the intent is that once you get a forest:
  hg clone http://hg.openjdk.java.net/jdk8/jdk8    j8
  cd j8
  sh ./get_source.sh

You should be able to simply configure&&make (the ultimate goal is this simple anyway), e.g.
   sh ./configure
   make NEWBUILD=true     # The NEWBUILD=true will become the default when we formally switch.

Where "make" is GNU make 3.81, and your system has all the requires packages and PATH contains the
needed tools. Note that on Windows, MKS unix utilities cannot be used with the new builds, just CYGWIN
is recommended at this time.

Of course, we know, it's never as easy as a simple configure&&make, and often you will need to pass in
configure options.

What we would like to know is where a simple configure&&make does not work, and anything people had
to do to make it work.

I know many of you are quite used to the old builds, so I have a temporary  "bridgeBuild" target
people can try that will attempt to map the ALT_* environment variables to an appropriate configure command
and then run that configure command and do the build, e.g.

  make NEWBUILD=true bridgeBuild

People willing to do comparisons between the old and new builds could:
  rm -f -r build
  time make NEWBUILD=true bridgeBuild
  rm -f -r build
  time make NO_DOCS=true     # Old builds do not generate javadocs by default

Any observations about speed of the builds would be appreciated, as will any impressions on what you see.

At this time, we think this is working pretty well with a few caveats:
  * GNU make with the new builds is doing much more parallel processing and this can stress out a system
    - Use "make JOBS=1" if you suspect a problem, then try adjusting it up slowly.
  * Partial builds are limited, right now full builds of the entire OpenJDK is the target
    - Hotspot can still be built on it's own, but everyone else needs to build hotspot at least once
  * Paths with multiple names can cause problems, e.g. being on system svc6, and access an exported share
    area as /net/svc6/export/foobar  instead of /export/foobar  will cause problems. Use local paths.

We know there are still issues and we will be focusing heavily on the critical ones in the next few weeks, but
we do need the community to tell us what the critical issues really are.

Our number one priority at this time is that everyone that was able to build the old way, should be able to build
with the new build-infra makefiles. Please help us verify that.

-kto




More information about the build-infra-dev mailing list