RFR: 8019229: Build Configuration Fail in Windows Platform

Erik Joelsson erik.joelsson at oracle.com
Thu Jun 27 08:31:21 UTC 2013

I found the problem. It seems the new version of sed isn't ignoring \r 
characters in the same way as the old one must have. The fix is simple 
so posting it inline below. The output from cl.exe contains a \r at the 
end of each line. This needs to be stripped off before meaningful 
comparisons can happen.

diff -r c156084add48 common/autoconf/toolchain.m4
--- a/common/autoconf/toolchain.m4
+++ b/common/autoconf/toolchain.m4
@@ -47,7 +47,7 @@
    elif test  "x$OPENJDK_TARGET_OS" = xwindows; then
      # First line typically looks something like:
      # Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 
16.00.30319.01 for 80x86
+    COMPILER_VERSION_TEST=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
"s/^.*Version \(@<:@1-9@:>@@<:@0-9.@:>@*\) .*/\1/p"`
      COMPILER_VENDOR="Microsoft CL.EXE"
for \(.*\)$/\1/p"`

I'm able to generate identical spec.gmk files (except for timestamps) 
with both old and new sed, and using old sed, with or without the fix.


On 2013-06-27 07:53, Dan Xu wrote:
> Hi All,
> I updated my cygwin in my windows 7 yesterday. And since then, the 
> build configuration failed to work. After investigating the build 
> issue, I find the problem is related with the sed package updated in 
> the cygwin. The latest sed package in cygwin is version 4.2.2-1. If I 
> downgrade my sed package to version 4.2.1-2 and re-run the 
> configuration, everything works fine again.
> I am not sure whether the issue is the latest sed itself, such as a 
> bug in sed 4.2.2-1. Or our build scripts need to be updated to work 
> with the new sed version.
> Here is the error message,
>    checking for DirectX SDK include dir...
>    /cygdrive/c/progra~2/micros~1.0sd/Include
>    configure: Rewriting DXSDK_INCLUDE_PATH to
>    "/cygdrive/c/progra~2/micros~1.0sd/include"
>    checking for cl... /cygdrive/c/Program Files (x86)/Microsoft Visual
>    Studio 10.0/VC/BIN/amd64/cl
>    configure: Rewriting CC to
>    "/cygdrive/c/progra~2/micros~2.0/vc/bin/amd64/cl"
>    checking resolved symbolic links for CC...
>    /cygdrive/c/progra~2/micros~2.0/vc/bin/amd64/cl
>    checking if CC is disguised ccache... no, keeping CC
>    configure: error: Target CPU mismatch. We are building for x86_64
>    but CL is for "; expected "x64".
>    configure exiting with result code 1
> I just reported a bug for this failure at jdk-8019229. Thanks!
> -Dan

More information about the build-dev mailing list