RFR: JDK-8195689 Remove generated-configure.sh and instead use autoconf
sgehwolf at redhat.com
Thu Jan 18 14:13:40 UTC 2018
On Thu, 2018-01-18 at 14:28 +0100, Magnus Ihse Bursie wrote:
> 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
Very cool! +1
Note: I haven't really reviewed the patch. This change in approach is
very welcome, though.
More information about the build-dev