7117748: SA_APPLE_BOOT_JAVA and ALWAYS_PASS_TEST_GAMMA settings should not be required on MacOS X
Summary: Replace SA_APPLE_BOOT_JAVA with logic that checks the boot JDK for the location of JDI classes. ALWAYS_PASS_TEST_GAMMA is true by default on Darwin.
Reviewed-by: kvn, swingler
--- a/hotspot/make/bsd/makefiles/buildtree.make Wed Jul 05 17:56:18 2017 +0200
+++ b/hotspot/make/bsd/makefiles/buildtree.make Mon Dec 05 14:55:16 2011 -0800
@@ -55,6 +55,9 @@
# The makefiles are split this way so that "make foo" will run faster by not
# having to read the dependency files for the vm.
+# needs to be set here since this Makefile doesn't include defs.make
+OS_VENDOR:=$(shell uname -s)
+
include $(GAMMADIR)/make/scm.make
include $(GAMMADIR)/make/altsrc.make
@@ -159,8 +162,15 @@
endif
endif
-# MACOSX FIXME: we should be able to run test_gamma (see MACOSX_PORT-214)
-ifdef ALWAYS_PASS_TEST_GAMMA
+ifeq ($(OS_VENDOR), Darwin)
+ # MACOSX FIXME: we should be able to run test_gamma (see MACOSX_PORT-214)
+ ifeq ($(ALWAYS_PASS_TEST_GAMMA),)
+ # ALWAYS_PASS_TEST_GAMMA wasn't set so we default to true on MacOS X
+ # until MACOSX_PORT-214 is fixed
+ ALWAYS_PASS_TEST_GAMMA=true
+ endif
+endif
+ifeq ($(ALWAYS_PASS_TEST_GAMMA), true)
TEST_GAMMA_STATUS= echo 'exit 0';
else
TEST_GAMMA_STATUS=
--- a/hotspot/make/bsd/makefiles/sa.make Wed Jul 05 17:56:18 2017 +0200
+++ b/hotspot/make/bsd/makefiles/sa.make Mon Dec 05 14:55:16 2011 -0800
@@ -37,11 +37,24 @@
TOPDIR = $(shell echo `pwd`)
GENERATED = $(TOPDIR)/../generated
-# tools.jar is needed by the JDI - SA binding
-ifeq ($(SA_APPLE_BOOT_JAVA),true)
- SA_CLASSPATH = $(BOOT_JAVA_HOME)/bundle/Classes/classes.jar
+# SA-JDI depends on the standard JDI classes.
+# Default SA_CLASSPATH location:
+DEF_SA_CLASSPATH=$(BOOT_JAVA_HOME)/lib/tools.jar
+ifeq ($(ALT_SA_CLASSPATH),)
+ # no alternate specified; see if default exists
+ SA_CLASSPATH=$(shell test -f $(DEF_SA_CLASSPATH) && echo $(DEF_SA_CLASSPATH))
+ ifeq ($(SA_CLASSPATH),)
+ # the default doesn't exist
+ ifeq ($(OS_VENDOR), Darwin)
+ # A JDK from Apple doesn't have tools.jar; the JDI classes are
+ # are in the regular classes.jar file.
+ APPLE_JAR=$(BOOT_JAVA_HOME)/bundle/Classes/classes.jar
+ SA_CLASSPATH=$(shell test -f $(APPLE_JAR) && echo $(APPLE_JAR))
+ endif
+ endif
else
- SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
+ _JUNK_ := $(shell echo >&2 "INFO: ALT_SA_CLASSPATH=$(ALT_SA_CLASSPATH)")
+ SA_CLASSPATH=$(shell test -f $(ALT_SA_CLASSPATH) && echo $(ALT_SA_CLASSPATH))
endif
# TODO: if it's a modules image, check if SA module is installed.
@@ -72,8 +85,8 @@
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
exit 1; \
fi
- $(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
- echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
+ $(QUIETLY) if [ ! -f "$(SA_CLASSPATH)" -a ! -d $(MODULELIB_PATH) ] ; then \
+ echo "Cannot find JDI classes. Use 1.6.0 or later version of JDK."; \
echo ""; \
exit 1; \
fi