RFR: JDK-8200267 a.out created at top dir by Solaris build
Erik Joelsson
erik.joelsson at oracle.com
Tue Apr 3 17:40:48 UTC 2018
Looks good!
/Erik
On 2018-04-03 06:11, Magnus Ihse Bursie wrote:
> There's an unwanted a.out in the top directory when building with
> Solaris.
>
> This one was actually a bit tricky to hunt down. It is created by ld
> when extracting the version information, but only when the output of
> ld is piped to head. I'm guessing this has something to do with how
> Solaris handles pipes; perhaps head closes the pipe "forcefully" after
> it has recieved it's single line, causing ld to not being able to
> clean up the temporary a.out that it has created. The patch below
> solves the issue, at any rate.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8200267
> Patch inline:
> diff --git a/make/autoconf/toolchain.m4 b/make/autoconf/toolchain.m4
> --- a/make/autoconf/toolchain.m4
> +++ b/make/autoconf/toolchain.m4
> @@ -597,8 +597,9 @@
>
> # solstudio cc requires us to have an existing file to pass as
> argument,
> # but it need not be a syntactically correct C file, so just use
> - # ourself. :)
> - LINKER_VERSION_STRING=`$LD -Wl,-V $TOPDIR/configure 2>&1 | $HEAD
> -n 1 | $SED -e 's/ld: //'`
> + # ourself. :) The intermediate 'cat' is needed to stop ld from
> leaving
> + # a lingering a.out (!).
> + LINKER_VERSION_STRING=`$LD -Wl,-V $TOPDIR/configure 2>&1 | $CAT |
> $HEAD -n 1 | $SED -e 's/ld: //'`
> # Extract version number
> [ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
> $SED -e 's/.*
> \([0-9][0-9]*\.[0-9][0-9]*\)-\([0-9][0-9]*\.[0-9][0-9]*\)/\1.\2/'` ]
>
> /Magnus
More information about the build-dev
mailing list