1.1 --- a/make/linux/makefiles/buildtree.make Tue Jan 24 14:07:03 2012 -0500 1.2 +++ b/make/linux/makefiles/buildtree.make Tue Jan 24 19:33:14 2012 -0500 1.3 @@ -326,11 +326,10 @@ 1.4 $(BUILDTREE_COMMENT); \ 1.5 [ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \ 1.6 { \ 1.7 - 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.8 echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \ 1.9 } | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \ 1.10 echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \ 1.11 - echo "export JAVA_HOME LD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \ 1.12 + echo "export JAVA_HOME CLASSPATH HOTSPOT_BUILD_USER"; \ 1.13 ) > $@ 1.14 1.15 env.csh: env.sh 1.16 @@ -384,7 +383,7 @@ 1.17 JAVA_FLAG/64 = -d64 1.18 1.19 WRONG_DATA_MODE_MSG = \ 1.20 - echo "JAVA_HOME must point to $(DATA_MODE)bit JDK." 1.21 + echo "JAVA_HOME must point to a $(DATA_MODE)-bit OpenJDK." 1.22 1.23 CROSS_COMPILING_MSG = \ 1.24 echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run." 1.25 @@ -392,19 +391,78 @@ 1.26 test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java 1.27 @echo Creating $@ ... 1.28 $(QUIETLY) ( \ 1.29 - echo '#!/bin/sh'; \ 1.30 + echo "#!/bin/sh"; \ 1.31 + echo ""; \ 1.32 $(BUILDTREE_COMMENT); \ 1.33 - echo '. ./env.sh'; \ 1.34 - echo "if [ \"$(CROSS_COMPILE_ARCH)\" != \"\" ]; then { $(CROSS_COMPILING_MSG); exit 0; }; fi"; \ 1.35 - echo "if [ -z \$$JAVA_HOME ]; then { $(NO_JAVA_HOME_MSG); exit 0; }; fi"; \ 1.36 - echo "if ! \$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion 2>&1 > /dev/null"; \ 1.37 - echo "then"; \ 1.38 - echo " $(WRONG_DATA_MODE_MSG); exit 0;"; \ 1.39 + echo ""; \ 1.40 + echo "# Include environment settings for gamma run"; \ 1.41 + echo ""; \ 1.42 + echo ". ./env.sh"; \ 1.43 + echo ""; \ 1.44 + echo "# Do not run gamma test for cross compiles"; \ 1.45 + echo ""; \ 1.46 + echo "if [ -n \"$(CROSS_COMPILE_ARCH)\" ]; then "; \ 1.47 + echo " $(CROSS_COMPILING_MSG)"; \ 1.48 + echo " exit 0"; \ 1.49 echo "fi"; \ 1.50 + echo ""; \ 1.51 + echo "# Make sure JAVA_HOME is set as it is required for gamma"; \ 1.52 + echo ""; \ 1.53 + echo "if [ -z \"\$${JAVA_HOME}\" ]; then "; \ 1.54 + echo " $(NO_JAVA_HOME_MSG)"; \ 1.55 + echo " exit 0"; \ 1.56 + echo "fi"; \ 1.57 + echo ""; \ 1.58 + echo "# Check JAVA_HOME version to be used for the test"; \ 1.59 + echo ""; \ 1.60 + echo "\$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion > /dev/null 2>&1"; \ 1.61 + echo "if [ \$$? -ne 0 ]; then "; \ 1.62 + echo " $(WRONG_DATA_MODE_MSG)"; \ 1.63 + echo " exit 0"; \ 1.64 + echo "fi"; \ 1.65 + echo ""; \ 1.66 + echo "# Use gamma_g if it exists"; \ 1.67 + echo ""; \ 1.68 + echo "GAMMA_PROG=gamma"; \ 1.69 + echo "if [ -f gamma_g ]; then "; \ 1.70 + echo " GAMMA_PROG=gamma_g"; \ 1.71 + echo "fi"; \ 1.72 + echo ""; \ 1.73 + echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \ 1.74 + echo " # Ensure architecture for gamma and JAVA_HOME is the same."; \ 1.75 + echo " # NOTE: gamma assumes the OpenJDK directory layout."; \ 1.76 + echo ""; \ 1.77 + echo " GAMMA_ARCH=\"\`file \$${GAMMA_PROG} | awk '{print \$$NF}'\`\""; \ 1.78 + echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/libjava.$(LIBRARY_SUFFIX)\""; \ 1.79 + echo " if [ ! -f \$${JVM_LIB} ]; then"; \ 1.80 + echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/$${LIBARCH}/libjava.$(LIBRARY_SUFFIX)\""; \ 1.81 + echo " fi"; \ 1.82 + echo " if [ ! -f \$${JVM_LIB} ] || [ -z \"\`file \$${JVM_LIB} | grep \$${GAMMA_ARCH}\`\" ]; then "; \ 1.83 + echo " $(WRONG_DATA_MODE_MSG)"; \ 1.84 + echo " exit 0"; \ 1.85 + echo " fi"; \ 1.86 + echo "fi"; \ 1.87 + echo ""; \ 1.88 + echo "# Compile Queens program for test"; \ 1.89 + echo ""; \ 1.90 echo "rm -f Queens.class"; \ 1.91 echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \ 1.92 - echo '[ -f gamma_g ] && { gamma=gamma_g; }'; \ 1.93 - echo './$${gamma:-gamma} $(TESTFLAGS) Queens < /dev/null'; \ 1.94 + echo ""; \ 1.95 + echo "# Set library path solely for gamma launcher test run"; \ 1.96 + echo ""; \ 1.97 + 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.98 + echo "export LD_LIBRARY_PATH"; \ 1.99 + echo "unset LD_LIBRARY_PATH_32"; \ 1.100 + echo "unset LD_LIBRARY_PATH_64"; \ 1.101 + echo ""; \ 1.102 + echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \ 1.103 + 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.104 + echo " export DYLD_LIBRARY_PATH"; \ 1.105 + echo "fi"; \ 1.106 + echo ""; \ 1.107 + echo "# Use the gamma launcher and JAVA_HOME to run the test"; \ 1.108 + echo ""; \ 1.109 + echo "./\$${GAMMA_PROG} $(TESTFLAGS) Queens < /dev/null"; \ 1.110 ) > $@ 1.111 $(QUIETLY) chmod +x $@ 1.112