RFR: JDK-8137013 ar (static linker) broken since JDK-8065912

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Wed Sep 23 13:16:34 UTC 2015


(I'm resending this as it does not seem to have reached build-dev; I apologize it this is a dup.)

Unfortunately JDK-8065912 broke ar, at least on solaris. In spec.gmk on posix platforms, we find 
AR_OUT_OPTION:=rcs$(SPACE) 

However, in JDK-8065912, the definition of SPACE moved from spec.gmk to MakeBase.gmk. But since spec.gmk typically is included ahead of MakeBase.gmk, SPACE will be undefined when AR_OUT_OPTION is evaluated. 

The short-term fix is to restore the definition of SPACE to spec.gmk.

Bug: https://bugs.openjdk.java.net/browse/JDK-8137013
Patch inline:

diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
--- a/common/autoconf/spec.gmk.in
+++ b/common/autoconf/spec.gmk.in
@@ -36,6 +36,11 @@
 # A self-referential reference to this file.
 SPEC:=@SPEC@
 
+# SPACE is defined in MakeBase.gmk, but it is also used in := rules here for some
+# toolchains, and is needed if MakeBase.gmk is not included before     this file.
+X:=
+SPACE:=$(X) $(X)
+
 # What make to use for main processing, after bootstrapping top-level Makefile.
 MAKE := @MAKE@
 
/Magnus



More information about the build-dev mailing list