RFR: JDK-8080082 configure fails if you create an empty directory and then run configure from it

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue May 12 01:44:29 UTC 2015

JDK-8079891 caused this behavior:

/scratch/dh198349/jdk9-dev > mkdir mybuild
/scratch/dh198349/jdk9-dev > cd mybuild
/scratch/dh198349/jdk9-dev/mybuild > bash ../configure
Running custom generated-configure.sh
configure: Configuration created at Mon May 11 19:09:12 EDT 2015.
configure: configure script generated at timestamp 1431344623.
checking for extra path...
checking where to store configuration... in current directory
configure: Current directory is /scratch/dh198349/jdk9-dev/mybuild.
configure: Since this is not the source root, configure will output the 
configuration here
configure: (as opposed to creating a configuration in 
configure: However, this directory is not empty. This is not allowed, 
since it could
configure: seriously mess up just about everything.
configure: Try 'cd /scratch/dh198349/jdk9-dev' and restart configure
configure: (or create a new empty directory and cd to it).
configure: error: Will not continue creating configuration in 

With JDK-8079891, a new file, configure.log will be present in the 
current directory, and this file is not filtered out when checking if 
the directory is (otherwise) empty. Introspection shows that running 
"configure --debug-configure" in an empty directory has probably been 
failing for a long time.

I also took the liberty of removing fixpath.exe from the filters, since 
fixpath is (nowadays) created much later in the configure process (and 
stored in a different place), and replacing tabs with spaces.

Bug: https://bugs.openjdk.java.net/browse/JDK-8080082
WebRev inline:

diff -r 98e85b507b09 common/autoconf/basics.m4
--- a/common/autoconf/basics.m4    Mon May 11 13:45:39 2015 +0200
+++ b/common/autoconf/basics.m4    Tue May 12 03:43:07 2015 +0200
@@ -705,9 +705,9 @@
        # is performed.
        filtered_files=`$ECHO "$files_present" \
            | $SED -e 's/config.log//g' \
-          -e 's/confdefs.h//g' \
-          -e 's/fixpath.exe//g' \
-          -e 's/ //g' \
+              -e 's/configure.log//g' \
+              -e 's/confdefs.h//g' \
+              -e 's/ //g' \
            | $TR -d '\n'`
        if test "x$filtered_files" != x; then
          AC_MSG_NOTICE([Current directory is $CURDIR.])

More information about the build-dev mailing list