RFR: JDK-8212986 Make Visual Studio compiler check less strict

Erik Joelsson erik.joelsson at oracle.com
Wed Feb 5 14:25:56 UTC 2020


Looks good.

/Erik

On 2020-02-05 03:11, Magnus Ihse Bursie wrote:
> On more than one occasion, we have had reports about not being able to 
> build on Windows due to Visual Studio being installed with a different 
> language. This causes the check in toolchain.m4 to fail as it assumes 
> the compiler greeting is in english. The latest failure gave this 
> message:
>
> configure: The C compiler (located as
> /cygdrive/c/progra~3/micros~1.0/vc/bin/cl) does not seem to be the 
> required
> microsoft compiler.
> configure: The result from running it was: "Compilador de optimizaci▒n de
> C/C++ de Microsoft (R) versi▒n 19.00.24234.1 para x86"
>
> (from 
> http://mail.openjdk.java.net/pipermail/build-dev/2018-October/023663.html)
>
> The check looks for "Microsoft.*Compiler". I think that to be language 
> neutral we can only really look for "Microsoft". If the tool is also 
> named cl.exe, then I think that's enough due diligence from us in 
> trying to fail early.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8212986
> Patch inline:
> diff --git a/make/autoconf/toolchain.m4 b/make/autoconf/toolchain.m4
> --- a/make/autoconf/toolchain.m4
> +++ b/make/autoconf/toolchain.m4
> @@ -450,9 +450,10 @@
>      # There is no specific version flag, but all output starts with a 
> version string.
>      # First line typically looks something like:
>      # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 
> 16.00.40219.01 for 80x86
> +    # but the compiler name may vary depending on locale.
>      COMPILER_VERSION_OUTPUT=`"$COMPILER" 2>&1 | $GREP -v 
> 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
>      # Check that this is likely to be Microsoft CL.EXE.
> -    $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > 
> /dev/null
> +    $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft" > /dev/null
>      if test $? -ne 0; then
>        AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as 
> $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
>        AC_MSG_NOTICE([The result from running it was: 
> "$COMPILER_VERSION_OUTPUT"])
>
> /Magnus
>



More information about the build-dev mailing list