make/linux/makefiles/buildtree.make

changeset 3473
e8a4934564b2
parent 3229
95009f678859
child 3600
7292cff45988
child 3724
d652a62d6e03
     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  

mercurial