RFR: JDK-8076123: 9-dev build fail: make/Init.gmk:142: *** multiple target patterns. Stop.

Erik Joelsson erik.joelsson at oracle.com
Fri Mar 27 11:46:55 UTC 2015


Hello,

There are a number of issues caused by JDK-8076060:

1. A completely new configuration fails when running make the first 
time. Second attempt succeeds. That's what failing in the bug description.
2. Bootcycle-images is broken as the current working dir in Main.gmk has 
changed from TOPDIR/make to TOPDIR.
3. The sanity check that spec.gmk is actually a spec for the current 
source tree fails if the source root has a symlink somewhere in the 
path, or if it's in a special cygwin directory like 
/home/something/jdk9-dev.

This patch addresses all of these.

1. was caused by the build output of module-deps.gmk ending up in the 
ALL_MAIN_TARGETS. The problem was that the check for if module-deps.gmk 
needed to be built only checked for the directory "make-support" instead 
of "make-support/module-deps.gmk". The directory make-support currently 
exists from just running configure.

2. Changed the make call for bootcycle-images to use an absolute path to 
Main.gmk so that current working directory becomes irrelevant.

3. This sanity check is new. To get it to work better, I changed 
configure to save two extra versions of the TOPDIR since the "topdir" 
calculated by make doesn't always match what we found in configure. Then 
in the sanity check I compare to all 3 different versions of TOPDIR. 
This seems to cover the cases reported so far. Ideally a path comparison 
shouldn't be done just by comparing strings, but we also need this to 
run fast at build time, so no shell execution if it can be avoided.

Bug: https://bugs.openjdk.java.net/browse/JDK-8076123
Webrev: http://cr.openjdk.java.net/~erikj/8076123/webrev.top.01/

/Erik



More information about the build-dev mailing list