RFR: JDK-8195689 Remove generated-configure.sh and instead use autoconf

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Thu Jan 18 13:28:16 UTC 2018


Currently, we require all developers who modify the configure script to 
run autoconf locally, to update the generated-configure.sh script, which 
is then checked in. This is the only instance of checked in "compiled" 
code in OpenJDK, and this has brought along several problems:

* Only a specific version of autoconf, 2.69, can be used, to avoid large 
code changes in the generated file. Unfortunately, Ubuntu ships a 
version of autoconf that claims to be 2.69 but is actually heavily 
patched. This requires all Ubuntu users to compiler their own autoconf 
from source.

* The Oracle JDK closed sources has a closed version that needs to be 
updated. In practice, this has meant that all non-Oracle developers, 
need an Oracle sponsor for patches modifying the configure script.

* If the configure script is not properly updated, the build will fail. 
The same happens on the Oracle side if the closed version is not in sync 
with the open version. It is easy to miss re-generating the script after 
the last fix of a typo in the comments in an .m4 file...

* Merging between two changes containing configure modifications is 
almost impossible. In practice, the entire generated-configure.sh needs 
to be thrown away and regenerated.

The entire benefit of having the file in the repo is to save first-time 
developers the hassle of installing autoconf. On most platforms, this is 
a no-brainer (like "apt install autoconf"), and the requirement is 
similar to other open source projects using autoconf and "./configure". 
It's just not worth it.

Bug: https://bugs.openjdk.java.net/browse/JDK-8195689
WebRev: 
http://cr.openjdk.java.net/~ihse/JDK-8195689-remove-generated-configure/webrev.01

/Magnus


More information about the build-dev mailing list