RFR: JDK-8195689 Remove generated-configure.sh and instead use autoconf
Erik Joelsson
erik.joelsson at oracle.com
Thu Jan 18 18:37:33 UTC 2018
Hello Magnus,
Nice to see this finally happening!
In building.md, when getting autoconf for Cygwin, I believe you also
need the autoconf wrapper scripts package. Perhaps it's also worth
mentioning that you can download the autoconf src and build/install from
there?
In jib-profiles.js, you need to use build_platform instead of
target_platform when creating the module name for the dependency. I
would also like if you added the dependency on the other main profiles
as well. At least linux-x86, linux-arm64 and windows-x86 are still
possible to build and should work fine with this. For solaris-x64 you
would need to generate the package for it to work.
The TMPDIR logic looks weird. Are you unconditionally setting it to
/cygdrive/t/...? That's a valid dir in our build farm, but not on my
local windows box:
mkdir: cannot create directory ‘/cygdrive/t’: No such file or directory
autom4te: cannot create
/cygdrive/t/workspace/.build/tmpdir/am4t7009.7040: No such file or directory
at
/cygdrive/c/cygwin64/var/tmp/jib-erik/install/jpg/infra/builddeps/autoconf-windows_x64/2.69+1.0.1/autoconf-windows_x64-2.69+1.0.1.tar.gz/usr/bin/autom4te
line 954.
Error: Failed to generate runnable configure script
/Erik
On 2018-01-18 05:28, 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
> WebRev:
> http://cr.openjdk.java.net/~ihse/JDK-8195689-remove-generated-configure/webrev.01
>
> /Magnus
More information about the build-dev
mailing list