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

Reply via email to