--- old/src/share/classes/com/sun/tools/jdi/SunCommandLineLauncher.java Sun Sep 8 19:59:36 2013 +++ new/src/share/classes/com/sun/tools/jdi/SunCommandLineLauncher.java Sun Sep 8 19:59:35 2013 @@ -196,11 +196,6 @@ try { if (home.length() > 0) { - /* - * A wrinkle in the environment: - * 64-bit executables are stored under $JAVA_HOME/bin/os_arch - * 32-bit executables are stored under $JAVA_HOME/bin - */ String os_arch = System.getProperty("os.arch"); if ("SunOS".equals(System.getProperty("os.name"))) { exePath = home + File.separator + "bin" + File.separator + exe; --- old/src/solaris/bin/java_md_solinux.c Sun Sep 8 19:59:37 2013 +++ new/src/solaris/bin/java_md_solinux.c Sun Sep 8 19:59:37 2013 @@ -59,9 +59,6 @@ */ #ifdef __solaris__ -# ifdef DUAL_MODE -# undef DUAL_MODE -# endif # ifndef LIBARCH32NAME # error "The macro LIBARCH32NAME was not defined on the compile line" # endif --- old/test/demo/jvmti/DemoRun.java Sun Sep 8 19:59:39 2013 +++ new/test/demo/jvmti/DemoRun.java Sun Sep 8 19:59:38 2013 @@ -125,7 +125,6 @@ String libprefix = os_name.contains("Windows")?"":"lib"; String libsuffix = os_name.contains("Windows")?".dll": os_name.contains("OS X")?".dylib":".so"; - boolean d64 = os_name.contains("Solaris"); boolean hprof = demo_name.equals("hprof"); String java = jre_home + File.separator + "bin" @@ -133,16 +132,15 @@ /* Array of strings to be passed in for exec: * 1. java * 2. -Dtest.classes=. - * 3. -d64 (optional) - * 4. -Xcheck:jni (Just because it finds bugs) - * 5. -Xverify:all (Make sure verification is on full blast) - * 6. -agent + * 3. -Xcheck:jni (Just because it finds bugs) + * 4. -Xverify:all (Make sure verification is on full blast) + * 5. -agent * vm_options - * 7+i. classname + * 6+i. classname */ int nvm_options = 0; if ( vm_options != null ) nvm_options = vm_options.length; - String cmd[] = new String[1 + (d64?1:0) + 7 + nvm_options]; + String cmd[] = new String[1 + 7 + nvm_options]; String cmdLine; int exitStatus; int i,j; @@ -156,10 +154,6 @@ cmdLine += (cmd[i++] = cdir); cmdLine += " "; cmdLine += (cmd[i++] = "-Dtest.classes=" + cdir); - if ( d64 ) { - cmdLine += " "; - cmdLine += (cmd[i++] = "-d64"); - } cmdLine += " "; cmdLine += (cmd[i++] = "-Xcheck:jni"); cmdLine += " "; --- old/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile Sun Sep 8 19:59:40 2013 +++ new/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile Sun Sep 8 19:59:40 2013 @@ -21,33 +21,14 @@ ifeq ($(uname), SunOS) PLATFORM = solaris ISAINFO = isainfo - ifndef ARCH_DATA_MODEL - ARCH_DATA_MODEL=32 - endif - ifeq ($(ARCH_DATA_MODEL), 32) - archExpr = case "`$(UNAME) -p`" in \ - i386) \ - $(ECHO) i586 \ - ;; \ - sparc*) \ - $(ECHO) sparc \ - ;; \ - *) \ - $(UNAME) -p \ - ;; \ - esac - ARCH := $(shell $(archExpr) ) - else - ARCH := $(shell $(ISAINFO) -n) - endif + ARCH_DATA_MODEL=64 + ARCH := $(shell $(ISAINFO) -n) CC = cc LD = ld CFLAGS = -D_REENTRANT -D__solaris__ LDFLAGS_COMMON = -G EXTRA_LIBS = -lc - ifeq ($(ARCH_DATA_MODEL), 64) - CC += -xarch=v9 - endif + CC += -m64 -Kpic endif ifeq ($(uname), Linux) --- old/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh Sun Sep 8 19:59:42 2013 +++ new/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh Sun Sep 8 19:59:41 2013 @@ -23,7 +23,6 @@ # questions. # - # @test # @bug 4673940 # @bug 4930794 @@ -39,14 +38,6 @@ exit 0 fi -arch=`uname -p` -if [ "$os" = "SunOS" ]; then - if [ "$arch" = "i386" -o "$arch" = "sparc" ]; then - echo "Test not designed to run on this operating system, skipping..." - exit 0 - fi -fi - # if TESTJAVA isn't set then we assume an interactive run. So that it's # clear which version of 'java' is running we do a 'which java' and # a 'java -version'. --- old/test/sun/tools/jhat/HatRun.java Sun Sep 8 19:59:43 2013 +++ new/test/sun/tools/jhat/HatRun.java Sun Sep 8 19:59:43 2013 @@ -167,7 +167,6 @@ String cdir = System.getProperty("test.classes", "."); String os_arch = System.getProperty("os.arch"); String os_name = System.getProperty("os.name"); - boolean d64 = os_name.equals("SunOS"); String java = jre_home + File.separator + "bin" + File.separator + "java"; @@ -176,16 +175,15 @@ /* Array of strings to be passed in for exec: * 1. java * 2. -Dtest.classes=. - * 3. -d64 (optional) - * 4. -Xcheck:jni (Just because it finds bugs) - * 5. -Xverify:all (Make sure verification is on full blast) - * 6. -agent + * 3. -Xcheck:jni (Just because it finds bugs) + * 4. -Xverify:all (Make sure verification is on full blast) + * 5. -agent * vm_options - * 7+i. classname + * 6+i. classname */ int nvm_options = 0; if ( vm_options != null ) nvm_options = vm_options.length; - String cmd[] = new String[1 + (d64?1:0) + 7 + nvm_options]; + String cmd[] = new String[1 + 7 + nvm_options]; int i,j; i = 0; @@ -193,9 +191,6 @@ cmd[i++] = "-cp"; cmd[i++] = cdir; cmd[i++] = "-Dtest.classes=" + cdir; - if ( d64 ) { - cmd[i++] = "-d64"; - } cmd[i++] = "-Xcheck:jni"; cmd[i++] = "-Xverify:all"; dumpfile= cdir + File.separator + class_name + ".hdump"; --- old/test/tools/launcher/ExecutionEnvironment.java Sun Sep 8 19:59:45 2013 +++ new/test/tools/launcher/ExecutionEnvironment.java Sun Sep 8 19:59:44 2013 @@ -48,7 +48,7 @@ * jre/lib/$arch/libjvm.so -> client/libjvm.so * 6. Since 32-bit Solaris is no longer supported we continue to ensure that * the appropriate paths are ignored or used, additionally we also test to - * ensure the 64-bit isadir exists and contains appopriate links. + * ensure the 64-bit isadir exists and contains appropriate links. * TODO: * a. perhaps we need to add a test to audit all environment variables are * in pristine condition after the launch, there may be a few that the @@ -66,6 +66,7 @@ import java.util.List; import java.util.Map; import static java.nio.file.LinkOption.*; +import java.util.regex.Pattern; public class ExecutionEnvironment extends TestHelper { @@ -284,7 +285,10 @@ verifySymLinks(JAVA_BIN); verifySymLinks(JAVA_JRE_BIN); } - private void verifySymLinks(String bindir) throws IOException { + // exclude non-consequential binaries or scripts co-packaged in install + private Pattern symlinkExcludes = Pattern.compile(".*jvisualvm.*"); + + private void verifySymLinks(String bindir) throws IOException { File binDir = new File(bindir); System.err.println("verifying links in: " + bindir); File isaDir = new File(binDir, getArch()).getAbsoluteFile(); @@ -293,13 +297,17 @@ } try (DirectoryStream ds = Files.newDirectoryStream(binDir.toPath())) { for (Path p : ds) { - if (Files.isDirectory(p, NOFOLLOW_LINKS)) + if (symlinkExcludes.matcher(p.toString()).matches() || + Files.isDirectory(p, NOFOLLOW_LINKS)) { continue; + } Path link = new File(isaDir, p.getFileName().toString()).toPath(); if (Files.isSymbolicLink(link)) { Path target = Files.readSymbolicLink(link); - if (target.startsWith("..") && p.endsWith(target.getFileName())) + if (target.startsWith("..") && p.endsWith(target.getFileName())) { + // System.out.println(target + " OK"); continue; + } System.err.println("target:" + target); System.err.println("file:" + p); } Binary files /tmp/dZmaa2E and new/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-amd64/libLauncher.so differ Binary files old/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so and /tmp/d7IaG7E differ Binary files old/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so and /tmp/dvXaiaF differ