1.1 --- a/make/bsd/makefiles/buildtree.make Tue Jan 24 14:07:03 2012 -0500 1.2 +++ b/make/bsd/makefiles/buildtree.make Tue Jan 24 19:33:14 2012 -0500 1.3 @@ -162,20 +162,6 @@ 1.4 endif 1.5 endif 1.6 1.7 -ifeq ($(OS_VENDOR), Darwin) 1.8 - # MACOSX FIXME: we should be able to run test_gamma (see MACOSX_PORT-214) 1.9 - ifeq ($(ALWAYS_PASS_TEST_GAMMA),) 1.10 - # ALWAYS_PASS_TEST_GAMMA wasn't set so we default to true on MacOS X 1.11 - # until MACOSX_PORT-214 is fixed 1.12 - ALWAYS_PASS_TEST_GAMMA=true 1.13 - endif 1.14 -endif 1.15 -ifeq ($(ALWAYS_PASS_TEST_GAMMA), true) 1.16 - TEST_GAMMA_STATUS= echo 'exit 0'; 1.17 -else 1.18 - TEST_GAMMA_STATUS= 1.19 -endif 1.20 - 1.21 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HS_BUILD_VER) HOTSPOT_BUILD_VERSION= JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 1.22 1.23 BUILDTREE = \ 1.24 @@ -353,12 +339,10 @@ 1.25 $(BUILDTREE_COMMENT); \ 1.26 [ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \ 1.27 { \ 1.28 - echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \ 1.29 - echo "DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \ 1.30 echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \ 1.31 } | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \ 1.32 echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \ 1.33 - echo "export JAVA_HOME LD_LIBRARY_PATH DYLD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \ 1.34 + echo "export JAVA_HOME CLASSPATH HOTSPOT_BUILD_USER"; \ 1.35 ) > $@ 1.36 1.37 env.csh: env.sh 1.38 @@ -412,7 +396,7 @@ 1.39 JAVA_FLAG/64 = -d64 1.40 1.41 WRONG_DATA_MODE_MSG = \ 1.42 - echo "JAVA_HOME must point to $(DATA_MODE)bit JDK." 1.43 + echo "JAVA_HOME must point to a $(DATA_MODE)-bit OpenJDK." 1.44 1.45 CROSS_COMPILING_MSG = \ 1.46 echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run." 1.47 @@ -420,20 +404,78 @@ 1.48 test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java 1.49 @echo Creating $@ ... 1.50 $(QUIETLY) ( \ 1.51 - echo '#!/bin/sh'; \ 1.52 + echo "#!/bin/sh"; \ 1.53 + echo ""; \ 1.54 $(BUILDTREE_COMMENT); \ 1.55 - echo '. ./env.sh'; \ 1.56 - echo "if [ \"$(CROSS_COMPILE_ARCH)\" != \"\" ]; then { $(CROSS_COMPILING_MSG); exit 0; }; fi"; \ 1.57 - echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \ 1.58 - echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \ 1.59 - echo "then"; \ 1.60 - echo " $(WRONG_DATA_MODE_MSG); exit 0;"; \ 1.61 + echo ""; \ 1.62 + echo "# Include environment settings for gamma run"; \ 1.63 + echo ""; \ 1.64 + echo ". ./env.sh"; \ 1.65 + echo ""; \ 1.66 + echo "# Do not run gamma test for cross compiles"; \ 1.67 + echo ""; \ 1.68 + echo "if [ -n \"$(CROSS_COMPILE_ARCH)\" ]; then "; \ 1.69 + echo " $(CROSS_COMPILING_MSG)"; \ 1.70 + echo " exit 0"; \ 1.71 echo "fi"; \ 1.72 + echo ""; \ 1.73 + echo "# Make sure JAVA_HOME is set as it is required for gamma"; \ 1.74 + echo ""; \ 1.75 + echo "if [ -z \"\$${JAVA_HOME}\" ]; then "; \ 1.76 + echo " $(NO_JAVA_HOME_MSG)"; \ 1.77 + echo " exit 0"; \ 1.78 + echo "fi"; \ 1.79 + echo ""; \ 1.80 + echo "# Check JAVA_HOME version to be used for the test"; \ 1.81 + echo ""; \ 1.82 + echo "\$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion > /dev/null 2>&1"; \ 1.83 + echo "if [ \$$? -ne 0 ]; then "; \ 1.84 + echo " $(WRONG_DATA_MODE_MSG)"; \ 1.85 + echo " exit 0"; \ 1.86 + echo "fi"; \ 1.87 + echo ""; \ 1.88 + echo "# Use gamma_g if it exists"; \ 1.89 + echo ""; \ 1.90 + echo "GAMMA_PROG=gamma"; \ 1.91 + echo "if [ -f gamma_g ]; then "; \ 1.92 + echo " GAMMA_PROG=gamma_g"; \ 1.93 + echo "fi"; \ 1.94 + echo ""; \ 1.95 + echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \ 1.96 + echo " # Ensure architecture for gamma and JAVA_HOME is the same."; \ 1.97 + echo " # NOTE: gamma assumes the OpenJDK directory layout."; \ 1.98 + echo ""; \ 1.99 + echo " GAMMA_ARCH=\"\`file \$${GAMMA_PROG} | awk '{print \$$NF}'\`\""; \ 1.100 + echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/libjava.$(LIBRARY_SUFFIX)\""; \ 1.101 + echo " if [ ! -f \$${JVM_LIB} ]; then"; \ 1.102 + echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/$${LIBARCH}/libjava.$(LIBRARY_SUFFIX)\""; \ 1.103 + echo " fi"; \ 1.104 + echo " if [ ! -f \$${JVM_LIB} ] || [ -z \"\`file \$${JVM_LIB} | grep \$${GAMMA_ARCH}\`\" ]; then "; \ 1.105 + echo " $(WRONG_DATA_MODE_MSG)"; \ 1.106 + echo " exit 0"; \ 1.107 + echo " fi"; \ 1.108 + echo "fi"; \ 1.109 + echo ""; \ 1.110 + echo "# Compile Queens program for test"; \ 1.111 + echo ""; \ 1.112 echo "rm -f Queens.class"; \ 1.113 echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \ 1.114 - echo '[ -f gamma_g ] && { gamma=gamma_g; }'; \ 1.115 - echo './$${gamma:-gamma} $(TESTFLAGS) Queens < /dev/null'; \ 1.116 - $(TEST_GAMMA_STATUS) \ 1.117 + echo ""; \ 1.118 + echo "# Set library path solely for gamma launcher test run"; \ 1.119 + echo ""; \ 1.120 + echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \ 1.121 + echo "export LD_LIBRARY_PATH"; \ 1.122 + echo "unset LD_LIBRARY_PATH_32"; \ 1.123 + echo "unset LD_LIBRARY_PATH_64"; \ 1.124 + echo ""; \ 1.125 + echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \ 1.126 + echo " DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/native_threads:\$${JAVA_HOME}/jre/lib:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \ 1.127 + echo " export DYLD_LIBRARY_PATH"; \ 1.128 + echo "fi"; \ 1.129 + echo ""; \ 1.130 + echo "# Use the gamma launcher and JAVA_HOME to run the test"; \ 1.131 + echo ""; \ 1.132 + echo "./\$${GAMMA_PROG} $(TESTFLAGS) Queens < /dev/null"; \ 1.133 ) > $@ 1.134 $(QUIETLY) chmod +x $@ 1.135