RFR: JDK-8072950: api/xinclude/Harold/harold-97.html\#harold-97, api/xinclude/Harold/harold-67.html\#harold-67 fails on solaris with build port-stage-aarch64

Erik Joelsson erik.joelsson at oracle.com
Thu Feb 12 09:24:33 UTC 2015


Please review this small fix to property cleaning. We normally build on 
Solaris (11.1) machines with gnu tools installed, including gnu sed so 
this has not affected official Oracle builds or JPRT. However, we cannot 
rely on gnu sed always being present so the build should be correct even 
with Solaris sed. The problem in this case is that Solaris sed ignores 
the last input line unless it is terminated by a newline character. The 
fix is to add an empty echo after the cat. The sed expression is already 
filtering out empty lines so the final output will not be changed.

I have verified that the affected lines no longer disappears when using 
Solaris sed.


Bug: https://bugs.openjdk.java.net/browse/JDK-8072950
Patch inline:
diff --git a/make/common/JavaCompilation.gmk 
--- a/make/common/JavaCompilation.gmk
+++ b/make/common/JavaCompilation.gmk
@@ -362,6 +362,10 @@
  # This is the new clean standard. Though it is to be superseded by
  # a standard annotation processor from with sjavac.
+# An empty echo ensures that the input to sed always ends with a newline.
+# Certain implementations (e.g. Solaris) will skip the last line without
+# it.
  # The sed expression does this:
  # 1. Add a backslash before any :, = or ! that do not have a backslash 
  # 2. Apply the file unicode2x.sed which does a whole bunch of \u00XX 
to \xXX
@@ -384,7 +388,7 @@
    # Now we can setup the depency that will trigger the copying.
    $$($1_BIN)$$($2_TARGET) : $2
         $(MKDIR) -p $$(@D)
-       export LC_ALL=C ; $(CAT) $$< \
+       export LC_ALL=C ; ( $(CAT) $$< && $(ECHO) "" ) \
             | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' \
                 -e 's/\([^\\]\)!/\1\\!/g' -e 's/#.*/#/g' \
             | $(SED) -f "$(SRC_ROOT)/make/common/support/unicode2x.sed" \

More information about the build-dev mailing list