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

Reply via email to