--- a/jdk/make/test/JtregNative.gmk Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/make/test/JtregNative.gmk Thu Jun 08 14:49:07 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/aix/native/libnet/aix_close.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/aix/native/libnet/aix_close.c Thu Jun 08 14:49:07 2017 +0200
@@ -64,7 +64,7 @@
#include <sys/uio.h>
#include <unistd.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "jvm.h"
#include "net_util.h"
--- a/jdk/src/java.base/aix/native/libnio/ch/AixPollPort.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/aix/native/libnio/ch/AixPollPort.c Thu Jun 08 14:49:07 2017 +0200
@@ -34,7 +34,7 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/pollset.h>
#include <fcntl.h>
#include <stddef.h>
--- a/jdk/src/java.base/linux/native/libnet/linux_close.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/linux/native/libnet/linux_close.c Thu Jun 08 14:49:07 2017 +0200
@@ -36,7 +36,7 @@
#include <sys/uio.h>
#include <unistd.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "jvm.h"
#include "net_util.h"
--- a/jdk/src/java.base/linux/native/libnio/fs/LinuxWatchService.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/linux/native/libnio/fs/LinuxWatchService.c Thu Jun 08 14:49:07 2017 +0200
@@ -32,7 +32,7 @@
#include <dlfcn.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/inotify.h>
#include "sun_nio_fs_LinuxWatchService.h"
--- a/jdk/src/java.base/macosx/native/include/jvm_md.h Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/macosx/native/include/jvm_md.h Thu Jun 08 14:49:07 2017 +0200
@@ -60,7 +60,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
-#include <sys/signal.h>
+#include <signal.h>
/* O Flags */
--- a/jdk/src/java.base/macosx/native/libjli/java_md_macosx.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/macosx/native/libjli/java_md_macosx.c Thu Jun 08 14:49:07 2017 +0200
@@ -732,6 +732,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/macosx/native/libnet/bsd_close.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/macosx/native/libnet/bsd_close.c Thu Jun 08 14:49:07 2017 +0200
@@ -38,7 +38,7 @@
#include <sys/uio.h>
#include <unistd.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "jvm.h"
#include "net_util.h"
--- a/jdk/src/java.base/share/classes/java/lang/Module.java Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/share/classes/java/lang/Module.java Thu Jun 08 14:49:07 2017 +0200
@@ -127,7 +127,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);
@@ -1050,9 +1050,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);
}
@@ -1153,8 +1150,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
@@ -1215,21 +1215,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/classes/java/lang/invoke/MemberName.java Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MemberName.java Thu Jun 08 14:49:07 2017 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -70,13 +70,18 @@
* and those seven fields omit much of the information in Method.
* @author jrose
*/
+/*non-public*/ final class ResolvedMethodName {
+ //@Injected JVM_Method* vmtarget;
+ //@Injected Class<?> vmholder;
+};
+
/*non-public*/ final class MemberName implements Member, Cloneable {
- private Class<?> clazz; // class in which the method is defined
+ private Class<?> clazz; // class in which the member is defined
private String name; // may be null if not yet materialized
private Object type; // may be null if not yet materialized
private int flags; // modifier bits; see reflect.Modifier
- //@Injected JVM_Method* vmtarget;
- //@Injected int vmindex;
+ private ResolvedMethodName method; // cached resolved method information
+ //@Injected intptr_t vmindex; // vtable index or offset of resolved member
Object resolution; // if null, this guy is resolved
/** Return the declaring class of this member.
--- a/jdk/src/java.base/share/native/libjli/java.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/share/native/libjli/java.c Thu Jun 08 14:49:07 2017 +0200
@@ -206,7 +206,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/solaris/native/libnio/ch/DevPollArrayWrapper.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/solaris/native/libnio/ch/DevPollArrayWrapper.c Thu Jun 08 14:49:07 2017 +0200
@@ -28,7 +28,7 @@
#include "jvm.h"
#include "jlong.h"
#include "sun_nio_ch_DevPollArrayWrapper.h"
-#include <sys/poll.h>
+#include <poll.h>
#include <unistd.h>
#include <sys/time.h>
--- a/jdk/src/java.base/unix/classes/module-info.java.extra Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/unix/classes/module-info.java.extra Thu Jun 08 14:49:07 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
@@ -23,5 +23,3 @@
* questions.
*/
-// AOT uses jdk.internal.misc.Unsafe
-exports jdk.internal.misc to jdk.aot;
--- a/jdk/src/java.base/unix/native/include/jvm_md.h Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/unix/native/include/jvm_md.h Thu Jun 08 14:49:07 2017 +0200
@@ -65,7 +65,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
-#include <sys/signal.h>
+#include <signal.h>
/* O Flags */
--- a/jdk/src/java.base/unix/native/libjli/java_md_solinux.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/unix/native/libjli/java_md_solinux.c Thu Jun 08 14:49:07 2017 +0200
@@ -742,6 +742,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/unix/native/libnet/net_util_md.h Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.h Thu Jun 08 14:49:07 2017 +0200
@@ -27,7 +27,7 @@
#define NET_UTILS_MD_H
#include <netdb.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/socket.h>
/************************************************************************
--- a/jdk/src/java.base/unix/native/libnio/ch/NativeThread.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/unix/native/libnio/ch/NativeThread.c Thu Jun 08 14:49:07 2017 +0200
@@ -31,24 +31,21 @@
#include "jlong.h"
#include "sun_nio_ch_NativeThread.h"
#include "nio_util.h"
+#include <signal.h>
#ifdef __linux__
#include <pthread.h>
- #include <sys/signal.h>
/* Also defined in net/linux_close.c */
#define INTERRUPT_SIGNAL (__SIGRTMAX - 2)
#elif _AIX
#include <pthread.h>
- #include <sys/signal.h>
/* Also defined in net/aix_close.c */
#define INTERRUPT_SIGNAL (SIGRTMAX - 1)
#elif __solaris__
#include <thread.h>
- #include <signal.h>
#define INTERRUPT_SIGNAL (SIGRTMAX - 2)
#elif _ALLBSD_SOURCE
#include <pthread.h>
- #include <signal.h>
/* Also defined in net/bsd_close.c */
#define INTERRUPT_SIGNAL SIGIO
#else
--- a/jdk/src/java.base/unix/native/libnio/ch/Net.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/unix/native/libnio/ch/Net.c Thu Jun 08 14:49:07 2017 +0200
@@ -23,7 +23,7 @@
* questions.
*/
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
--- a/jdk/src/java.base/windows/classes/module-info.java.extra Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/java.base/windows/classes/module-info.java.extra Thu Jun 08 14:49:07 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,4 @@
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;
+
--- a/jdk/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/jdk.jdwp.agent/share/native/libjdwp/debugLoop.c Thu Jun 08 14:49:07 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 Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/jdk.jdwp.agent/share/native/libjdwp/eventHelper.c Thu Jun 08 14:49:07 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/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c Thu Jun 08 14:49:07 2017 +0200
@@ -37,7 +37,7 @@
#include <thread.h>
#else
#include <pthread.h>
-#include <sys/poll.h>
+#include <poll.h>
#endif
#include "socket_md.h"
--- a/jdk/test/sun/tools/jcmd/TestJcmdDefaults.java Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/test/sun/tools/jcmd/TestJcmdDefaults.java Thu Jun 08 14:49:07 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 Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/test/tools/launcher/Settings.java Thu Jun 08 14:49:07 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 Thu Jun 08 12:15:54 2017 +0530
+++ b/jdk/test/tools/launcher/TooSmallStackSize.java Thu Jun 08 14:49:07 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");
}
}