[8u] RFR (S) 8079891: Store configure log in $BUILD/configure.log

Andrew Hughes gnu.andrew at redhat.com
Wed Jul 7 17:08:44 UTC 2021


On 20:21 Tue 06 Jul     , Aleksey Shipilev wrote:
> On 7/6/21 7:39 PM, Andrew Hughes wrote:
> > It's not clear to me what this does.
> > 
> > Prior to this patch, I had a config.log in my build directory.
> 
> Yes, in the `pwd`:
> 
> jdk8u-dev $ find | grep config.log
> ./config.log
>

Ah, yes, my `pwd` would be the build directory :-)

Moving this seems incomplete because there are other files output by
configure, like config.status.  The real solution is for builddir != srcdir
(a "VPATH build")

OpenJDK only uses autoconf and not automake, so the use of 'make
distcheck' is also not routine. We used to use that on GNU Classpath
before release, to ensure that the build could complete from the
distribution tarball, using a separate build tree, with the source
directory read only [0].

> That one contains the messages that compilers produce when running ./configure.
> 
> > After this patch, I have both config.log and configure.log.old, which
> > seems to contain largely the same information.
> > 
> > I don't see a configure.log.
> 
> It should be in per-config dir, and it contains the ./configure log, the
> same that you normally see in console, including configure warnings, etc.
> 
> jdk8u-dev $ find | grep configure.log
> ./build/linux-x86_64-normal-server-fastdebug/configure.log
>

No joy before or after the patch:

$ find ~/builder/8u-dev.old -name 'configure.log'
$ find ~/builder/8u-dev -name 'configure.log'

> It is symmetrical to the already existing build.log that captures the build
> output that you normally see in console as well.
> 
> jdk8u-dev $ find | grep build.log
> ./build/linux-x86_64-normal-server-fastdebug/build.log
>

Those I do have :/

$ find ~/builder/8u-dev.old -name 'build.log'
/home/ahughes/builder/8u-dev.old/build.log
$ find ~/builder/8u-dev -name 'build.log'
/home/ahughes/builder/8u-dev/build.log

configure.log is not in the source tree either. I'll have to dig through
what is going on when I get time.

> > So what exactly is the problem we're trying to solve?
> 
> Exactly those logs are useful to see what is being built. Capturing them is a hassle, though.
> 
> Capturing ./configure output from stdout is doable, until you get into exit
> code handling, which is quite a mess (i.e. capturing the error code from the
> piped commands is sane mostly when forcing bash-isms like "set -o
> pipefail"). Configure output saved as file is significantly easier to deal
> with.
> 
> This backport helps at least my CIs to capture configure logs for jdk8u, as
> it is done for every other release already:
>   https://builds.shipilev.net/openjdk-jdk8-dev/configure-logs/
>   https://builds.shipilev.net/openjdk-jdk/configure-logs/
>

I get that. I've just never had recourse to use anything but config.log. It
actually provides more detailed output with the variable settings and test
failures (essential when debugging a new configure test)

The main addition in configure.log seems to be the JDK's only pre- and
post- configure output. Off-hand, it seems that this is actually a bug
that this isn't logged to config.log (AS_MESSAGE_LOG_FD) [1] [2].
Again, I'll have a look at how this behaves on trunk after the CPU.

> -- 
> Thanks,
> -Aleksey
> 

[0] https://www.gnu.org/software/automake/manual/html_node/Checking-the-Distribution.html
[1] https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/File-Descriptor-Macros.html#AS%5fMESSAGE%5fLOG%5fFD
[2] https://icedtea.wildebeest.org/hg/icedtea8/file/tip/acinclude.m4#l468
-- 
Andrew :)
Pronouns: he / him or they / them
Senior Free Java Software Engineer
OpenJDK Package Owner
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222


More information about the jdk8u-dev mailing list