Merge
authorjwilhelm
Tue, 25 Apr 2017 20:24:24 +0200
changeset 46859 36fd4dcf9df0
parent 44911 7cfd28612947 (current diff)
parent 46858 367ce8d9c66f (diff)
child 46860 e481c467829c
Merge
--- a/jdk/make/test/JtregNative.gmk	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/make/test/JtregNative.gmk	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -35,12 +35,14 @@
 include MakeBase.gmk
 include TestFilesCompilation.gmk
 
+$(eval $(call IncludeCustomExtension, jdk, test/JtregNative.gmk))
+
 ################################################################################
 # Targets for building the native tests themselves.
 ################################################################################
 
 # Add more directories here when needed.
-BUILD_JDK_JTREG_NATIVE_SRC := \
+BUILD_JDK_JTREG_NATIVE_SRC += \
     $(JDK_TOPDIR)/test/native_sanity \
     #
 
--- a/jdk/src/java.base/macosx/native/libjli/java_md_macosx.c	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/java.base/macosx/native/libjli/java_md_macosx.c	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -886,6 +886,7 @@
     if (stack_size > 0) {
       pthread_attr_setstacksize(&attr, stack_size);
     }
+    pthread_attr_setguardsize(&attr, 0); // no pthread guard page on java threads
 
     if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
       void * tmp;
--- a/jdk/src/java.base/share/classes/java/lang/Module.java	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/java.base/share/classes/java/lang/Module.java	Tue Apr 25 20:24:24 2017 +0200
@@ -126,7 +126,7 @@
 
         // define module to VM
 
-        boolean isOpen = descriptor.isOpen();
+        boolean isOpen = descriptor.isOpen() || descriptor.isAutomatic();
         Version version = descriptor.version().orElse(null);
         String vs = Objects.toString(version, null);
         String loc = Objects.toString(uri, null);
@@ -1042,9 +1042,6 @@
         if (syncVM) {
             // throws IllegalStateException if defined to another module
             addPackage0(this, pn);
-            if (descriptor.isOpen() || descriptor.isAutomatic()) {
-                addExportsToAll0(this, pn);
-            }
         }
         extraPackages.putIfAbsent(pn, Boolean.TRUE);
     }
@@ -1145,8 +1142,11 @@
                 m.implAddReads(ALL_UNNAMED_MODULE, true);
             }
 
-            // exports and opens
-            initExportsAndOpens(m, nameToSource, nameToModule, layer.parents());
+            // export and open packages, skipped for open and automatic
+            // modules since they are treated as if all packages are open
+            if (!descriptor.isOpen() && !descriptor.isAutomatic()) {
+                initExportsAndOpens(m, nameToSource, nameToModule, layer.parents());
+            }
         }
 
         // register the modules in the boot layer
@@ -1207,21 +1207,11 @@
                                             Map<String, Module> nameToSource,
                                             Map<String, Module> nameToModule,
                                             List<ModuleLayer> parents) {
-        // The VM doesn't special case open or automatic modules so need to
-        // export all packages
-        ModuleDescriptor descriptor = m.getDescriptor();
-        if (descriptor.isOpen() || descriptor.isAutomatic()) {
-            assert descriptor.opens().isEmpty();
-            for (String source : descriptor.packages()) {
-                addExportsToAll0(m, source);
-            }
-            return;
-        }
-
         Map<String, Set<Module>> openPackages = new HashMap<>();
         Map<String, Set<Module>> exportedPackages = new HashMap<>();
 
         // process the open packages first
+        ModuleDescriptor descriptor = m.getDescriptor();
         for (Opens opens : descriptor.opens()) {
             String source = opens.source();
 
--- a/jdk/src/java.base/share/native/libjli/java.c	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/java.base/share/native/libjli/java.c	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -201,7 +201,7 @@
  * A minimum -Xss stack size suitable for all platforms.
  */
 #ifndef STACK_SIZE_MINIMUM
-#define STACK_SIZE_MINIMUM (32 * KB)
+#define STACK_SIZE_MINIMUM (64 * KB)
 #endif
 
 /*
--- a/jdk/src/java.base/unix/classes/module-info.java.extra	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/java.base/unix/classes/module-info.java.extra	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,5 +32,3 @@
 
 exports jdk.internal.module to jdk.internal.vm.compiler;
 
-// AOT uses jdk.internal.misc.Unsafe
-exports jdk.internal.misc to jdk.aot;
--- a/jdk/src/java.base/unix/native/libjli/java_md_solinux.c	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/java.base/unix/native/libjli/java_md_solinux.c	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -899,6 +899,7 @@
     if (stack_size > 0) {
       pthread_attr_setstacksize(&attr, stack_size);
     }
+    pthread_attr_setguardsize(&attr, 0); // no pthread guard page on java threads
 
     if (pthread_create(&tid, &attr, (void *(*)(void*))continuation, (void*)args) == 0) {
       void * tmp;
--- a/jdk/src/java.base/windows/classes/module-info.java.extra	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/java.base/windows/classes/module-info.java.extra	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,3 +26,13 @@
 exports sun.security.rsa to jdk.crypto.mscapi;
 exports sun.security.internal.spec to jdk.crypto.mscapi;
 exports sun.security.util to jdk.crypto.mscapi;
+
+// jdk.internal.vm.compiler uses Unsafe and VM classes from jdk.internal.misc
+exports jdk.internal.misc to jdk.internal.vm.compiler;
+opens   jdk.internal.misc to jdk.internal.vm.compiler;
+
+// jdk.internal.vm.compiler uses com.sun.crypto.provider to generate crypto intrinsics
+opens com.sun.crypto.provider to jdk.internal.vm.compiler;
+
+exports jdk.internal.module to jdk.internal.vm.compiler;
+
--- a/jdk/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -125,15 +125,13 @@
             jboolean replyToSender = JNI_TRUE;
 
             /*
-             * For VirtualMachine commands we hold the vmDeathLock
+             * For all commands we hold the vmDeathLock
              * while executing and replying to the command. This ensures
-             * that a VM command after VM_DEATH will be allowed to complete
+             * that a command after VM_DEATH will be allowed to complete
              * before the thread posting the VM_DEATH continues VM
              * termination.
              */
-            if (cmd->cmdSet == JDWP_COMMAND_SET(VirtualMachine)){
-                debugMonitorEnter(vmDeathLock);
-            }
+            debugMonitorEnter(vmDeathLock);
 
             /* Initialize the input and output streams */
             inStream_init(&in, p);
@@ -172,9 +170,7 @@
             /*
              * Release the vmDeathLock as the reply has been posted.
              */
-            if (cmd->cmdSet == JDWP_COMMAND_SET(VirtualMachine)){
-               debugMonitorExit(vmDeathLock);
-            }
+            debugMonitorExit(vmDeathLock);
 
             inStream_destroy(&in);
             outStream_destroy(&out);
--- a/jdk/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -240,10 +240,10 @@
 
         size = commandSize(command);
         /*
-         * Immediately close out any commands enqueued from a
-         * previously attached debugger.
+         * Immediately close out any commands enqueued from
+         * a dead VM or a previously attached debugger.
          */
-        if (command->sessionID != currentSessionID) {
+        if (gdata->vmDead || command->sessionID != currentSessionID) {
             log_debugee_location("dequeueCommand(): command session removal", NULL, NULL, 0);
             completeCommand(command);
             command = NULL;
--- a/jdk/test/sun/tools/jcmd/TestJcmdDefaults.java	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/test/sun/tools/jcmd/TestJcmdDefaults.java	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,7 +49,7 @@
 
     private static final String TEST_SRC = System.getProperty("test.src").trim();
     private static final String[] VM_ARGS = new String[] { "-XX:+UsePerfData" };
-    private static final String JCMD_LIST_REGEX = "^\\d+\\s*.*";
+    private static final String JCMD_LIST_REGEX = "(?s)^\\d+\\s*.*";
 
     public static void main(String[] args) throws Exception {
         testJcmdUsage("-h");
--- a/jdk/test/tools/launcher/Settings.java	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/test/tools/launcher/Settings.java	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -73,9 +73,9 @@
     }
 
     static void runTestOptionDefault() throws IOException {
-        String stackSize = "256"; // in kb
+        int stackSize = 256; // in kb
         if (getArch().equals("ppc64") || getArch().equals("ppc64le")) {
-            stackSize = "800";
+            stackSize = 800;
         }
         TestResult tr;
         tr = doExec(javaCmd, "-Xms64m", "-Xmx512m",
@@ -86,7 +86,7 @@
             throw new RuntimeException("test fails");
         }
         tr = doExec(javaCmd, "-Xms65536k", "-Xmx712m",
-                "-Xss" + stackSize + "000", "-XshowSettings", "-jar", testJar.getAbsolutePath());
+                "-Xss" + (stackSize * 1024), "-XshowSettings", "-jar", testJar.getAbsolutePath());
         containsAllOptions(tr);
         if (!tr.isOK()) {
             System.out.println(tr);
--- a/jdk/test/tools/launcher/TooSmallStackSize.java	Tue Apr 25 11:54:34 2017 +0100
+++ b/jdk/test/tools/launcher/TooSmallStackSize.java	Tue Apr 25 20:24:24 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -155,15 +155,21 @@
         checkStack("16k");
 
         /*
-         * Try with a 32k stack size, which is the size that the launcher will
+         * Try with a 64k stack size, which is the size that the launcher will
          * set to if you try setting to anything smaller. This should produce the same
          * result as setting to 16k if the fix for 6762191 is in place.
          */
-        String min_stack_allowed = checkStack("32k");
+        String min_stack_allowed = checkStack("64k");
 
         /*
          * Try again with a the minimum stack size that was given in the error message
          */
         checkMinStackAllowed(min_stack_allowed);
+
+        /*
+         * Try again with a size that is not OS page aligned. This is to help test that
+         * asserts added for 8176768 are not triggered.
+         */
+        checkMinStackAllowed("513k");
     }
 }