RFR: JDK-8152666: The new Hotspot Build System

Erik Joelsson erik.joelsson at oracle.com
Fri Mar 25 08:03:58 UTC 2016


Hello,

Here is the initial review for the new Hotspot Build System, as 
described in " JEP 284: New HotSpot Build System". This patch adds the 
new build system along side the old and makes the new system the 
default. The old build system will remain for a (hopefully) short while 
until we feel confident it is no longer needed. This enables us to iron 
out any details that we might have missed with minimal disruption for 
the users. The goal is to remove the old system after one week of the 
new going in. During that time, both build systems will have to be kept 
in sync. For that to be possible, all changes touching anything in the 
make directory need to be reviewed by me.

In this patch, the makefiles for the new build system are located in 
hotspot/makefiles. When we apply the second phase, where we remove the 
old build system, the new will move into the proper hotspot/make directory.

To activate the old build system after this patch has been applied, use 
the configure arg "--disable-new-hotspot-build".

For more information about how the new build works and how to interact 
with it, Magnus wrote a document that is still relevant:
http://hg.openjdk.java.net/build-infra/jdk9/file/tip/support/new-hotspot-build.md

The main method of verification for this patch has been running the 
compare.sh script to verify that the output is equivalent to the old 
build in as many cases as possible. In most configurations we have 
reached a high level of confidence that we produce equivalent binaries, 
but there are some exceptions that should be mentioned:

* Solaris sparcv9 slowdebug produces differences when comparing 
disassembly output from libjvm.so. I have not been able to find any 
meaningful differences in compiler or linker flags to explain this.
* Windows server jvm.dll ends up with some functions in different order 
in the disassembly output. From what I can tell, the bits are otherwise 
equivalent.

We have also run the runtime nightlies with no notable failures.

This is a pretty big patch and I expect it to take some time to get 
properly reviewed. It contains contributions from Magnus Ihse Bursie, 
Erik Joelsson and Ingemar Åberg.

Bug: https://bugs.openjdk.java.net/browse/JDK-8152666
Webrev: http://cr.openjdk.java.net/~erikj/8152666/webrev.01/index.html

/Erik



More information about the build-dev mailing list