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