RFR: JDK-8179079: Incremental HotSpot builds broken on Windows

Erik Joelsson erik.joelsson at oracle.com
Fri Apr 21 14:50:35 UTC 2017


We have hit another issue related to the new Cygwin behavior regarding 
\r line endings. The incremental native build on Windows breaks because 
we get ^M characters in the *.d files. Output from "make --debug=b" 
typically looks like this:

Prerequisite 
'/cygdrive/c/erik/jdk9-dev/hotspot/src/share/vm/adlc/adlc.hpp^M' of 
target 
'/cygdrive/c/erik/jdk9-dev/build/windows-x64/hotspot/variant-server/tools/adlc/objs/adlparse.obj' 
does not exist.

It's annoying to be fixing these one at a time like this, but I can't 
really see a general solution to the problem. Here is the simplest fix I 
could come up with for this particular problem:

diff -r 6832b2d9d1ae make/common/NativeCompilation.gmk
--- a/make/common/NativeCompilation.gmk Fri Apr 21 11:31:09 2017 +0200
+++ b/make/common/NativeCompilation.gmk Fri Apr 21 16:48:11 2017 +0200
@@ -165,6 +165,7 @@
  WINDOWS_SHOWINCLUDE_SED_PATTERN := \
      -e '/^Note: including file:/!d' \
      -e 's|Note: including file: *||' \
+    -e 's|\r||g' \
      -e 's|\\|/|g' \
      -e 's|^\([a-zA-Z]\):|$(UNIX_PATH_PREFIX)/\1|g' \
      -e '\|$(TOPDIR)|I !d' \


This sed expression is used to rewrite the output of CL's -showIncludes 
into a list of header files with absolute unix paths.

/Erik




More information about the build-dev mailing list