--- old/make/Import.gmk 2015-10-15 12:36:40.215649518 -0400 +++ new/make/Import.gmk 2015-10-15 12:36:39.435605649 -0400 @@ -1,5 +1,5 @@ # -# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2015, 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 @@ -45,8 +45,16 @@ # # Import hotspot # + +# Don't import jsig library for static builds +ifneq ($(BUILD_STATIC), true) + JSIG_IMPORT = jsig.* +else + JSIG_IMPORT = +endif + HOTSPOT_BASE_IMPORT_FILES := \ - $(addprefix $(LIBRARY_PREFIX), jvm.* jsig.* jvm_db.* jvm_dtrace.*) \ + $(addprefix $(LIBRARY_PREFIX), jvm.* $(JSIG_IMPORT) jvm_db.* jvm_dtrace.*) \ Xusage.txt \ # @@ -79,32 +87,34 @@ ################################################################################ -ifeq ($(OPENJDK_TARGET_OS), macosx) - JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig$(SHARED_LIBRARY_SUFFIX).dSYM) \ - $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) -else - JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.debuginfo) \ - $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) -endif +ifneq ($(BUILD_STATIC), true) + ifeq ($(OPENJDK_TARGET_OS), macosx) + JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig$(SHARED_LIBRARY_SUFFIX).dSYM) \ + $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) + else + JSIG_DEBUGINFO := $(strip $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.debuginfo) \ + $(wildcard $(HOTSPOT_DIST)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/libjsig.diz) ) + endif -ifneq ($(OPENJDK_TARGET_OS), windows) - ifeq ($(JVM_VARIANT_SERVER), true) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) - ifneq (, $(JSIG_DEBUGINFO)) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/server/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) + ifneq ($(OPENJDK_TARGET_OS), windows) + ifeq ($(JVM_VARIANT_SERVER), true) + BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/server/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) + ifneq (, $(JSIG_DEBUGINFO)) + BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/server/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) + endif endif - endif - ifeq ($(JVM_VARIANT_CLIENT), true) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) - ifneq (, $(JSIG_DEBUGINFO)) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/client/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) + ifeq ($(JVM_VARIANT_CLIENT), true) + BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/client/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) + ifneq (, $(JSIG_DEBUGINFO)) + BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/client/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) + endif endif - endif - ifneq ($(OPENJDK_TARGET_OS), macosx) - ifeq ($(JVM_VARIANT_MINIMAL1), true) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) - ifneq (,$(JSIG_DEBUGINFO)) - BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/minimal/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) + ifneq ($(OPENJDK_TARGET_OS), macosx) + ifeq ($(JVM_VARIANT_MINIMAL1), true) + BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/minimal/$(LIBRARY_PREFIX)jsig$(SHARED_LIBRARY_SUFFIX) + ifneq (,$(JSIG_DEBUGINFO)) + BASE_TARGETS += $(BASE_INSTALL_LIBRARIES_HERE)/minimal/$(foreach I,$(JSIG_DEBUGINFO),$(notdir $I)) + endif endif endif endif --- old/make/launcher/LauncherCommon.gmk 2015-10-15 12:36:42.335768751 -0400 +++ new/make/launcher/LauncherCommon.gmk 2015-10-15 12:36:41.627728931 -0400 @@ -106,10 +106,30 @@ endif endif - $1_LDFLAGS += -Wl,-all_load $(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a \ - -framework Cocoa -framework Security -framework ApplicationServices \ - -sectcreate __TEXT __info_plist $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE) - $1_LDFLAGS_SUFFIX += -pthread + ifeq ($(BUILD_STATIC), true) + $1_LDFLAGS += -Wl,-all_load \ + $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -name "*.a") \ + $(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libdt_socket.a \ + $(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libjdwp.a \ + $(SUPPORT_OUTPUTDIR)/native/java.base/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) \ + -framework CoreFoundation \ + -framework Foundation \ + -framework SystemConfiguration \ + -framework Cocoa -framework Security \ + -framework ApplicationServices \ + -lstdc++ -liconv \ + -sectcreate __TEXT __info_plist \ + $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE) \ + -exported_symbols_list \ + $(SUPPORT_OUTPUTDIR)/build-static/exported.symbols + else + $1_LDFLAGS += -Wl,-all_load $(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a \ + -framework Cocoa -framework Security -framework ApplicationServices \ + -sectcreate __TEXT __info_plist $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE) + $1_LDFLAGS_SUFFIX += -pthread + endif + + endif ifeq ($(OPENJDK_TARGET_OS), aix) --- old/make/lib/CoreLibraries.gmk 2015-10-15 12:36:44.351882134 -0400 +++ new/make/lib/CoreLibraries.gmk 2015-10-15 12:36:43.639842090 -0400 @@ -436,10 +436,14 @@ OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC) + ifeq ($(BUILD_STATIC), true) + TARGETS += $(BUILD_LIBJLI_STATIC) + else + $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC) $(call install-file) - TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a + TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a + endif else ifeq ($(OPENJDK_TARGET_OS), aix) # AIX also requires a static libjli because the compiler doesn't support '-rpath' --- old/make/lib/Lib-java.base.gmk 2015-10-15 12:36:46.375995967 -0400 +++ new/make/lib/Lib-java.base.gmk 2015-10-15 12:36:45.659955698 -0400 @@ -1,5 +1,5 @@ # -# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2015, 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 @@ -33,3 +33,28 @@ include NetworkingLibraries.gmk include NioLibraries.gmk include SecurityLibraries.gmk + +ifeq ($(BUILD_STATIC), true) + JAVA_BASE_EXPORT_SYMBOLS_SRC := \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli/$(LIBRARY_PREFIX)jli.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)java.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)net.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)nio.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)verify.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)zip.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/$(LIBRARY_PREFIX)jimage.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/server/$(LIBRARY_PREFIX)jvm.symbols \ + # + + JAVA_BASE_EXPORT_SYMBOL_FILE := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/java.base.symbols + + $(JAVA_BASE_EXPORT_SYMBOL_FILE): $(JAVA_BASE_EXPORT_SYMBOLS_SRC) + $(ECHO) $(LOG_INFO) "Generating java.base.symbols file" + $(CAT) $^ > $@ + + # The individual symbol files is generated when the respective lib is built + $(JAVA_BASE_EXPORT_SYMBOLS_SRC): $(BUILD_LIBJLI) $(BUILD_LIBJAVA) \ + $(BUILD_LIBNET) $(BUILD_LIBNIO) $(BUILD_LIBVERIFY) $(BUILD_LIBZIP) + + TARGETS += $(JAVA_BASE_EXPORT_SYMBOL_FILE) +endif --- old/make/lib/Lib-jdk.jdwp.agent.gmk 2015-10-15 12:36:48.420110926 -0400 +++ new/make/lib/Lib-jdk.jdwp.agent.gmk 2015-10-15 12:36:47.712071106 -0400 @@ -100,3 +100,23 @@ TARGETS += $(BUILD_LIBJDWP) ################################################################################ + +ifeq ($(BUILD_STATIC), true) + JDK_JDWP_AGENT_EXPORT_SYMBOLS_SRC := \ + $(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/$(LIBRARY_PREFIX)dt_socket.symbols \ + $(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/$(LIBRARY_PREFIX)jdwp.symbols + + JDK_JDWP_AGENT_EXPORT_SYMBOL_FILE := $(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/jdk.jdwp.agent.symbols + + $(JDK_JDWP_AGENT_EXPORT_SYMBOL_FILE): $(JDK_JDWP_AGENT_EXPORT_SYMBOLS_SRC) + $(ECHO) $(LOG_INFO) "Generating jdk.jdwp.agent symbols file" + $(CAT) $^ > $@ + + # The individual symbol files is generated when the respective lib is built + $(JDK_JDWP_AGENT_EXPORT_SYMBOLS_SRC): $(BUILD_LIBDT_SOCKET) $(BUILD_LIBJDWP) + + TARGETS += $(JDK_JDWP_AGENT_EXPORT_SYMBOL_FILE) + +endif + +################################################################################ --- old/make/lib/SecurityLibraries.gmk 2015-10-15 12:36:50.468226111 -0400 +++ new/make/lib/SecurityLibraries.gmk 2015-10-15 12:36:49.748185615 -0400 @@ -26,38 +26,42 @@ include LibCommon.gmk ifeq ($(OPENJDK_TARGET_OS), macosx) + # JavaNativeFoundation framework not supported in static builds + ifneq ($(BUILD_STATIC), true) ################################################################################ - LIBOSXSECURITY_DIRS := $(JDK_TOPDIR)/src/java.base/macosx/native/libosxsecurity - LIBOSXSECURITY_CFLAGS := -I$(LIBOSXSECURITY_DIRS) \ - $(LIBJAVA_HEADER_FLAGS) \ - -I$(SUPPORT_OUTPUTDIR)/headers/java.base \ - - $(eval $(call SetupNativeCompilation,BUILD_LIBOSXSECURITY, \ - LIBRARY := osxsecurity, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBOSXSECURITY_DIRS), \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(LIBOSXSECURITY_CFLAGS), \ - DISABLED_WARNINGS_clang := deprecated-declarations, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_macosx := \ - -fobjc-link-runtime \ - -framework JavaNativeFoundation \ - -framework CoreServices \ - -framework Security \ - $(LDFLAGS_JDKLIB_SUFFIX), \ - OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxsecurity, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + LIBOSXSECURITY_DIRS := $(JDK_TOPDIR)/src/java.base/macosx/native/libosxsecurity + LIBOSXSECURITY_CFLAGS := -I$(LIBOSXSECURITY_DIRS) \ + $(LIBJAVA_HEADER_FLAGS) \ + -I$(SUPPORT_OUTPUTDIR)/headers/java.base \ + + $(eval $(call SetupNativeCompilation,BUILD_LIBOSXSECURITY, \ + LIBRARY := osxsecurity, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBOSXSECURITY_DIRS), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBOSXSECURITY_CFLAGS), \ + DISABLED_WARNINGS_clang := deprecated-declarations, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + -L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_macosx := \ + -fobjc-link-runtime \ + -framework JavaNativeFoundation \ + -framework CoreServices \ + -framework Security \ + $(LDFLAGS_JDKLIB_SUFFIX), \ + OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libosxsecurity, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - $(BUILD_LIBOSXSECURITY): $(BUILD_LIBJAVA) + $(BUILD_LIBOSXSECURITY): $(BUILD_LIBJAVA) - TARGETS += $(BUILD_LIBOSXSECURITY) + TARGETS += $(BUILD_LIBOSXSECURITY) ################################################################################ + endif endif + --- old/make/mapfiles/libnio/mapfile-macosx 2015-10-15 12:36:52.488339717 -0400 +++ new/make/mapfiles/libnio/mapfile-macosx 2015-10-15 12:36:51.780299898 -0400 @@ -75,6 +75,7 @@ Java_sun_nio_ch_IOUtil_makePipe; Java_sun_nio_ch_IOUtil_randomBytes; Java_sun_nio_ch_IOUtil_setfdVal; + Java_sun_nio_ch_IOUtil_iovMax; Java_sun_nio_ch_KQueue_kqueue; Java_sun_nio_ch_KQueue_keventRegister; Java_sun_nio_ch_KQueue_keventPoll; --- old/src/demo/share/jvmti/agent_util/agent_util.h 2015-10-15 12:36:54.488452200 -0400 +++ new/src/demo/share/jvmti/agent_util/agent_util.h 2015-10-15 12:36:53.776412160 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -65,6 +65,51 @@ void *allocate(jvmtiEnv *jvmti, jint len); void add_demo_jar_to_bootclasspath(jvmtiEnv *jvmti, char *demo_name); +#ifdef STATIC_BUILD +/* Macros for handling declaration of static/dynamic + * Agent library Load/Attach/Unload functions + * + * DEF_Agent_OnLoad, DEF_Agent_OnAttach or DEF_Agent_OnUnload + * generate the appropriate entrypoint names based on static + * versus dynamic builds. + * + * STATIC_BUILD must be defined to build static versions of these libraries. + * LIBRARY_NAME must be set to the name of the library for static builds. + */ +#define ADD_LIB_NAME3(name, lib) name ## lib +#define ADD_LIB_NAME2(name, lib) ADD_LIB_NAME3(name, lib) +#define ADD_LIB_NAME(entry) ADD_LIB_NAME2(entry, LIBRARY_NAME) + +#define DEF_Agent_OnLoad \ +ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) \ +{ \ + jint JNICALL ADD_LIB_NAME(Agent_OnLoad_dynamic_)(JavaVM *vm, char *options, void *reserved); \ + return ADD_LIB_NAME(Agent_OnLoad_dynamic_)(vm, options, reserved); \ +} \ +jint JNICALL ADD_LIB_NAME(Agent_OnLoad_dynamic_) + +#define DEF_Agent_OnAttach \ +ADD_LIB_NAME(Agent_OnAttach_)(JavaVM *vm, char *options, void *reserved) \ +{ \ + jint JNICALL ADD_LIB_NAME(Agent_OnAttach_dynamic_)(JavaVM *vm, char *options, void *reserved); \ + return ADD_LIB_NAME(Agent_OnAttach_dynamic_)(vm, options, reserved); \ +} \ +jint JNICALL ADD_LIB_NAME(Agent_OnAttach_dynamic_) + +#define DEF_Agent_OnUnload \ +ADD_LIB_NAME(Agent_OnUnload_)(JavaVM *vm) \ +{ \ + void JNICALL ADD_LIB_NAME(Agent_OnUnload_dynamic_)(JavaVM *vm); \ + ADD_LIB_NAME(Agent_OnUnload_dynamic_)(vm); \ +} \ +void JNICALL ADD_LIB_NAME(Agent_OnUnload_dynamic_) + +#else +#define DEF_Agent_OnLoad Agent_OnLoad +#define DEF_Agent_OnAttach Agent_OnAttach +#define DEF_Agent_OnUnload Agent_OnUnload +#endif + #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ --- old/src/demo/share/jvmti/compiledMethodLoad/compiledMethodLoad.c 2015-10-15 12:36:57.468619801 -0400 +++ new/src/demo/share/jvmti/compiledMethodLoad/compiledMethodLoad.c 2015-10-15 12:36:56.752579531 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -225,7 +225,7 @@ * event here. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jint rc; jvmtiError err; @@ -272,6 +272,6 @@ /* Agent_OnUnload() is called last */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { } --- old/src/demo/share/jvmti/gctest/gctest.c 2015-10-15 12:36:59.548736786 -0400 +++ new/src/demo/share/jvmti/gctest/gctest.c 2015-10-15 12:36:58.820695843 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -148,7 +148,7 @@ /* Agent_OnLoad() is called first, we prepare for a VM_INIT event here. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jint rc; jvmtiError err; @@ -193,6 +193,6 @@ /* Agent_OnUnload() is called last */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { } --- old/src/demo/share/jvmti/heapTracker/heapTracker.c 2015-10-15 12:37:01.564850169 -0400 +++ new/src/demo/share/jvmti/heapTracker/heapTracker.c 2015-10-15 12:37:00.864810800 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -894,7 +894,7 @@ * loaded. This is the first code executed. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { static GlobalAgentData data; jvmtiEnv *jvmti; @@ -1010,7 +1010,7 @@ * unloaded. This is the last code executed. */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { /* Skip any cleanup, VM is about to die anyway */ } --- old/src/demo/share/jvmti/heapTracker/heapTracker.h 2015-10-15 12:37:03.592964229 -0400 +++ new/src/demo/share/jvmti/heapTracker/heapTracker.h 2015-10-15 12:37:02.884924409 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -64,9 +64,4 @@ #include "agent_util.h" -/* Agent library externals to export. */ - -JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved); -JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm); - #endif --- old/src/demo/share/jvmti/heapViewer/heapViewer.c 2015-10-15 12:37:05.797088187 -0400 +++ new/src/demo/share/jvmti/heapViewer/heapViewer.c 2015-10-15 12:37:04.917038693 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -235,7 +235,7 @@ /* Agent_OnLoad() is called first, we prepare for a VM_INIT event here. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jint rc; jvmtiError err; @@ -283,6 +283,6 @@ /* Agent_OnUnload() is called last */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { } --- old/src/demo/share/jvmti/minst/minst.c 2015-10-15 12:37:08.101217767 -0400 +++ new/src/demo/share/jvmti/minst/minst.c 2015-10-15 12:37:07.389177723 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -373,7 +373,7 @@ * loaded. This is the first code executed. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { static GlobalAgentData data; jvmtiEnv *jvmti; @@ -467,7 +467,7 @@ * unloaded. This is the last code executed. */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { /* Make sure all malloc/calloc/strdup space is freed */ if ( gdata->include != NULL ) { --- old/src/demo/share/jvmti/minst/minst.h 2015-10-15 12:37:10.181334751 -0400 +++ new/src/demo/share/jvmti/minst/minst.h 2015-10-15 12:37:09.461294256 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -64,9 +64,4 @@ #include "agent_util.h" -/* Agent library externals to export. */ - -JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved); -JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm); - #endif --- old/src/demo/share/jvmti/mtrace/mtrace.c 2015-10-15 12:37:12.205448586 -0400 +++ new/src/demo/share/jvmti/mtrace/mtrace.c 2015-10-15 12:37:11.493408540 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -697,7 +697,7 @@ * loaded. This is the first code executed. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { static GlobalAgentData data; jvmtiEnv *jvmti; @@ -795,7 +795,7 @@ * unloaded. This is the last code executed. */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { /* Make sure all malloc/calloc/strdup space is freed */ if ( gdata->include != NULL ) { --- old/src/demo/share/jvmti/mtrace/mtrace.h 2015-10-15 12:37:14.289565793 -0400 +++ new/src/demo/share/jvmti/mtrace/mtrace.h 2015-10-15 12:37:13.561524849 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -64,9 +64,4 @@ #include "agent_util.h" -/* Agent library externals to export. */ - -JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved); -JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm); - #endif --- old/src/demo/share/jvmti/versionCheck/versionCheck.c 2015-10-15 12:37:16.325680302 -0400 +++ new/src/demo/share/jvmti/versionCheck/versionCheck.c 2015-10-15 12:37:15.605639808 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -89,7 +89,7 @@ /* Agent_OnLoad() is called first, we prepare for a VM_INIT event here. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jint rc; jvmtiError err; @@ -116,6 +116,6 @@ /* Agent_OnUnload() is called last */ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { } --- old/src/demo/share/jvmti/waiters/Monitor.hpp 2015-10-15 12:37:18.349794136 -0400 +++ new/src/demo/share/jvmti/waiters/Monitor.hpp 2015-10-15 12:37:17.653754991 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -37,6 +37,10 @@ * this sample code. */ +#ifdef STATIC_BUILD +#define Monitor WaiterMonitor +#endif + /* C++ Monitor class */ --- old/src/demo/share/jvmti/waiters/Thread.cpp 2015-10-15 12:37:20.369907745 -0400 +++ new/src/demo/share/jvmti/waiters/Thread.cpp 2015-10-15 12:37:19.649867250 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -37,6 +37,9 @@ * this sample code. */ +#ifdef STATIC_BUILD +#define Thread WaiterThread +#endif #include #include --- old/src/demo/share/jvmti/waiters/waiters.cpp 2015-10-15 12:37:22.394021579 -0400 +++ new/src/demo/share/jvmti/waiters/waiters.cpp 2015-10-15 12:37:21.677981310 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -243,7 +243,7 @@ /* Agent_OnLoad() is called first, we prepare for a VM_INIT event here. */ JNIEXPORT jint JNICALL - Agent_OnLoad(JavaVM *vm, char *options, void *reserved) + DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jvmtiEnv *jvmti; jint rc; @@ -288,7 +288,7 @@ /* Agent_OnUnload() is called last */ JNIEXPORT void JNICALL - Agent_OnUnload(JavaVM *vm) + DEF_Agent_OnUnload(JavaVM *vm) { } --- old/src/java.base/macosx/native/libjava/java_props_macosx.c 2015-10-15 12:37:24.454137437 -0400 +++ new/src/java.base/macosx/native/libjava/java_props_macosx.c 2015-10-15 12:37:23.730096718 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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,13 +35,15 @@ #include "java_props_macosx.h" - // need dlopen/dlsym trick to avoid pulling in JavaRuntimeSupport before libjava.dylib is loaded static void *getJRSFramework() { static void *jrsFwk = NULL; +#ifndef STATIC_BUILD +// JavaRuntimeSupport doesn't support static Java runtimes if (jrsFwk == NULL) { jrsFwk = dlopen("/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/JavaRuntimeSupport", RTLD_LAZY | RTLD_LOCAL); } +#endif return jrsFwk; } --- old/src/java.base/macosx/native/libjli/java_md_macosx.c 2015-10-15 12:37:26.502252621 -0400 +++ new/src/java.base/macosx/native/libjli/java_md_macosx.c 2015-10-15 12:37:25.790212577 -0400 @@ -245,6 +245,8 @@ return sExportedJNIFunctions = fxns; } +#ifndef STATIC_BUILD + JNIEXPORT jint JNICALL JNI_GetDefaultJavaVMInitArgs(void *args) { InvocationFunctions *ifn = GetExportedJNIFunctions(); @@ -265,6 +267,7 @@ if (ifn == NULL) return JNI_ERR; return ifn->GetCreatedJavaVMs(vmBuf, bufLen, nVMs); } +#endif /* * Allow JLI-aware launchers to specify a client/server preference @@ -303,7 +306,12 @@ objc_registerThreadWithCollector(); if (main_fptr == NULL) { +#ifdef STATIC_BUILD + extern int main(int argc, char **argv); + main_fptr = &main; +#else main_fptr = (int (*)())dlsym(RTLD_DEFAULT, "main"); +#endif if (main_fptr == NULL) { JLI_ReportErrorMessageSys("error locating main entrypoint\n"); exit(1); @@ -588,6 +596,9 @@ JLI_TraceLauncher("Does `%s' exist ... ", jvmpath); +#ifdef STATIC_BUILD + return JNI_TRUE; +#else if (stat(jvmpath, &s) == 0) { JLI_TraceLauncher("yes.\n"); return JNI_TRUE; @@ -595,6 +606,7 @@ JLI_TraceLauncher("no.\n"); return JNI_FALSE; } +#endif } /* @@ -607,10 +619,18 @@ if (GetApplicationHome(path, pathsize)) { /* Is JRE co-located with the application? */ +#ifdef STATIC_BUILD + char jvm_cfg[MAXPATHLEN]; + JLI_Snprintf(jvm_cfg, sizeof(jvm_cfg), "%s/lib/jvm.cfg", path); + if (access(jvm_cfg, F_OK) == 0) { + return JNI_TRUE; + } +#else JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (access(libjava, F_OK) == 0) { return JNI_TRUE; } +#endif /* ensure storage for path + /jre + NULL */ if ((JLI_StrLen(path) + 4 + 1) > (size_t) pathsize) { JLI_TraceLauncher("Insufficient space to store JRE path\n"); @@ -629,6 +649,24 @@ Dl_info selfInfo; dladdr(&GetJREPath, &selfInfo); +#ifdef STATIC_BUILD + char jvm_cfg[MAXPATHLEN]; + char *p = NULL; + strncpy(jvm_cfg, selfInfo.dli_fname, MAXPATHLEN); + p = strrchr(jvm_cfg, '/'); *p = '\0'; + p = strrchr(jvm_cfg, '/'); + if (strcmp(p, "/.") == 0) { + *p = '\0'; + p = strrchr(jvm_cfg, '/'); *p = '\0'; + } + else *p = '\0'; + strncpy(path, jvm_cfg, pathsize); + strncat(jvm_cfg, "/lib/jvm.cfg", MAXPATHLEN); + if (access(jvm_cfg, F_OK) == 0) { + return JNI_TRUE; + } +#endif + char *realPathToSelf = realpath(selfInfo.dli_fname, path); if (realPathToSelf != path) { return JNI_FALSE; @@ -664,7 +702,11 @@ JLI_TraceLauncher("JVM path is %s\n", jvmpath); +#ifndef STATIC_BUILD libjvm = dlopen(jvmpath, RTLD_NOW + RTLD_GLOBAL); +#else + libjvm = dlopen(NULL, RTLD_FIRST); +#endif if (libjvm == NULL) { JLI_ReportErrorMessage(DLL_ERROR1, __LINE__); JLI_ReportErrorMessage(DLL_ERROR2, jvmpath, dlerror()); @@ -714,9 +756,14 @@ char* exec_path = NULL; { Dl_info dlinfo; - int (*fptr)(); +#ifdef STATIC_BUILD + void *fptr; + fptr = (void *)&SetExecname; +#else + int (*fptr)(); fptr = (int (*)())dlsym(RTLD_DEFAULT, "main"); +#endif if (fptr == NULL) { JLI_ReportErrorMessage(DLL_ERROR3, dlerror()); return JNI_FALSE; --- old/src/java.base/share/native/libjava/check_version.c 2015-10-15 12:37:28.818382878 -0400 +++ new/src/java.base/share/native/libjava/check_version.c 2015-10-15 12:37:28.026338335 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -24,10 +24,11 @@ */ #include "jni.h" +#include "jni_util.h" #include "jvm.h" JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { jint vm_version = JVM_GetInterfaceVersion(); if (vm_version != JVM_INTERFACE_VERSION) { --- old/src/java.base/share/native/libjava/jio.c 2015-10-15 12:37:30.942502337 -0400 +++ new/src/java.base/share/native/libjava/jio.c 2015-10-15 12:37:30.222461842 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -27,6 +27,7 @@ #include "jni.h" +#ifndef STATIC_BUILD /* This is a temporary solution until we figure out how to let native * libraries use jio_* without linking with the VM. @@ -63,3 +64,6 @@ return len; } + +#endif + --- old/src/java.base/share/native/libjava/jni_util.h 2015-10-15 12:37:32.998617970 -0400 +++ new/src/java.base/share/native/libjava/jni_util.h 2015-10-15 12:37:32.266576801 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, 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 @@ -389,6 +389,117 @@ extern size_t getLastErrorString(char *buf, size_t len); extern int getErrorString(int err, char *buf, size_t len); + +#ifdef STATIC_BUILD +/* Macros for handling declaration of static/dynamic + * JNI library Load/Unload functions + * + * Use DEF_JNI_On{Un}Load when you want a static and non-static entry points. + * Use DEF_STATIC_JNI_On{Un}Load when you only want a static one. + * + * LIBRARY_NAME must be set to the name of the library + */ + +/* These three macros are needed to get proper concatenation of + * the LIBRARY_NAME + * + * NOTE: LIBRARY_NAME must be set for static builds. + */ +#define ADD_LIB_NAME3(name, lib) name ## lib +#define ADD_LIB_NAME2(name, lib) ADD_LIB_NAME3(name, lib) +#define ADD_LIB_NAME(entry) ADD_LIB_NAME2(entry, LIBRARY_NAME) + +#define DEF_JNI_OnLoad \ +ADD_LIB_NAME(JNI_OnLoad_)(JavaVM *vm, void *reserved) \ +{ \ + jint JNICALL ADD_LIB_NAME(JNI_OnLoad_dynamic_)(JavaVM *vm, void *reserved); \ + ADD_LIB_NAME(JNI_OnLoad_dynamic_)(vm, reserved); \ + return JNI_VERSION_1_8; \ +} \ +jint JNICALL ADD_LIB_NAME(JNI_OnLoad_dynamic_) + +#define DEF_STATIC_JNI_OnLoad \ +JNIEXPORT jint JNICALL ADD_LIB_NAME(JNI_OnLoad_)(JavaVM *vm, void *reserved) { \ + return JNI_VERSION_1_8; \ +} + +#define DEF_JNI_OnUnload \ +ADD_LIB_NAME(JNI_OnUnload_)(JavaVM *vm, void *reserved) \ +{ \ + void JNICALL ADD_LIB_NAME(JNI_OnUnload_dynamic_)(JavaVM *vm, void *reserved); \ + ADD_LIB_NAME(JNI_OnUnload_dynamic_)(vm, reserved); \ +} \ +void JNICALL ADD_LIB_NAME(JNI_OnUnload_dynamic_) + +#define DEF_STATIC_JNI_OnUnload \ +ADD_LIB_NAME(JNI_OnUnload_) + +#else + +#define DEF_JNI_OnLoad JNI_OnLoad +#define DEF_STATIC_JNI_OnLoad +#define DEF_JNI_OnUnload JNI_OnUnload +#define DEF_STATIC_JNI_OnUnload +#endif + +#ifdef STATIC_BUILD +/* Macros for handling declaration of static/dynamic + * Agent library Load/Attach/Unload functions + * + * Use DEF_Agent_OnLoad, DEF_Agent_OnAttach or DEF_Agent_OnUnload + * when you want both static and non-static entry points. + * Use DEF_STATIC_Agent_OnLoad, DEF_STATIC_Agent_OnAttach or + * DEF_STATIC_Agent_OnUnload when you only want a static one. + * + * LIBRARY_NAME must be set to the name of the library for static builds. + */ + +#define DEF_Agent_OnLoad \ +ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) \ +{ \ + jint JNICALL ADD_LIB_NAME(Agent_OnLoad_dynamic_)(JavaVM *vm, char *options, void *reserved); \ + return ADD_LIB_NAME(Agent_OnLoad_dynamic_)(vm, options, reserved); \ +} \ +jint JNICALL ADD_LIB_NAME(Agent_OnLoad_dynamic_) + +#define DEF_STATIC_Agent_OnLoad \ +JNIEXPORT jint JNICALL ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) { \ + return JNI_FALSE; \ +} + +#define DEF_Agent_OnAttach \ +ADD_LIB_NAME(Agent_OnAttach_)(JavaVM *vm, char *options, void *reserved) \ +{ \ + jint JNICALL ADD_LIB_NAME(Agent_OnAttach_dynamic_)(JavaVM *vm, char *options, void *reserved); \ + return ADD_LIB_NAME(Agent_OnAttach_dynamic_)(vm, options, reserved); \ +} \ +jint JNICALL ADD_LIB_NAME(Agent_OnAttach_dynamic_) + +#define DEF_STATIC_Agent_OnAttach \ +JNIEXPORT jint JNICALL ADD_LIB_NAME(Agent_OnLoad_)(JavaVM *vm, char *options, void *reserved) { \ + return JNI_FALSE; \ +} + +#define DEF_Agent_OnUnload \ +ADD_LIB_NAME(Agent_OnUnload_)(JavaVM *vm) \ +{ \ + void JNICALL ADD_LIB_NAME(Agent_OnUnload_dynamic_)(JavaVM *vm); \ + ADD_LIB_NAME(Agent_OnUnload_dynamic_)(vm); \ +} \ +void JNICALL ADD_LIB_NAME(Agent_OnUnload_dynamic_) + +#define DEF_STATIC_Agent_OnUnload \ +ADD_LIB_NAME(Agent_OnUnload_) + +#else +#define DEF_Agent_OnLoad Agent_OnLoad +#define DEF_Agent_OnAttach Agent_OnAttach +#define DEF_Agent_OnUnload Agent_OnUnload +#define DEF_STATIC_Agent_OnLoad +#define DEF_STATIC_Agent_OnAttach +#define DEF_STATIC_Agent_OnUnload +#endif + #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ --- old/src/java.base/share/native/libjimage/ImageNativeSubstrate.cpp 2015-10-15 12:37:35.046733154 -0400 +++ new/src/java.base/share/native/libjimage/ImageNativeSubstrate.cpp 2015-10-15 12:37:34.334693110 -0400 @@ -236,7 +236,7 @@ } JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) { +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEnv *env; if (vm->GetEnv((void**) &env, JNI_VERSION_1_2) != JNI_OK) { @@ -594,6 +594,6 @@ return module; } -JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) { +JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved) { ImageDecompressor::image_decompressor_close(); } --- old/src/java.base/share/native/libnet/net_util.c 2015-10-15 12:37:37.086847889 -0400 +++ new/src/java.base/share/native/libnet/net_util.c 2015-10-15 12:37:36.366807394 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -38,7 +38,7 @@ } JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEnv *env; jclass iCls; --- old/src/java.base/share/native/libnio/nio_util.c 2015-10-15 12:37:39.118962173 -0400 +++ new/src/java.base/share/native/libnio/nio_util.c 2015-10-15 12:37:38.402921903 -0400 @@ -28,7 +28,7 @@ #include "jni_util.h" JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEnv *env; --- old/src/java.base/share/native/libverify/check_code.c 2015-10-15 12:37:41.127075107 -0400 +++ new/src/java.base/share/native/libverify/check_code.c 2015-10-15 12:37:40.415035063 -0400 @@ -86,6 +86,7 @@ #include #include "jni.h" +#include "jni_util.h" #include "jvm.h" #include "classfile_constants.h" #include "opcodes.in_out" @@ -481,6 +482,11 @@ static void print_formatted_methodname(context_type *context, int index); #endif +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + void initialize_class_hash(context_type *context) { hash_table_type *class_hash = &(context->class_hash); --- old/src/java.base/share/native/libzip/ZipFile.c 2015-10-15 12:37:43.223192991 -0400 +++ new/src/java.base/share/native/libzip/ZipFile.c 2015-10-15 12:37:42.499152271 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -55,6 +55,12 @@ static int OPEN_READ = java_util_zip_ZipFile_OPEN_READ; static int OPEN_DELETE = java_util_zip_ZipFile_OPEN_DELETE; + +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + JNIEXPORT void JNICALL Java_java_util_zip_ZipFile_initIDs(JNIEnv *env, jclass cls) { --- old/src/java.base/unix/native/libjava/jlong_md.h 2015-10-15 12:37:45.263307725 -0400 +++ new/src/java.base/unix/native/libjava/jlong_md.h 2015-10-15 12:37:44.555267905 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2015, 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 @@ -65,11 +65,19 @@ #define jlong_zero_init ((jlong) 0L) #ifdef _LP64 -#define jlong_to_ptr(a) ((void*)(a)) -#define ptr_to_jlong(a) ((jlong)(a)) + #ifndef jlong_to_ptr + #define jlong_to_ptr(a) ((void*)(a)) + #endif + #ifndef ptr_to_jlong + #define ptr_to_jlong(a) ((jlong)(a)) + #endif #else -#define jlong_to_ptr(a) ((void*)(int)(a)) -#define ptr_to_jlong(a) ((jlong)(int)(a)) + #ifndef jlong_to_ptr + #define jlong_to_ptr(a) ((void*)(int)(a)) + #endif + #ifndef ptr_to_jlong + #define ptr_to_jlong(a) ((jlong)(int)(a)) + #endif #endif #define jint_to_jlong(a) ((jlong)(a)) --- old/src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m 2015-10-15 12:37:47.275420884 -0400 +++ new/src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m 2015-10-15 12:37:46.575381515 -0400 @@ -740,7 +740,7 @@ JNF_COCOA_EXIT(env) } -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { OSXAPP_SetJavaVM(vm); // We need to let Foundation know that this is a multithreaded application, if it isn't already. --- old/src/java.desktop/macosx/native/libjawt/jawt.m 2015-10-15 12:37:49.307535169 -0400 +++ new/src/java.desktop/macosx/native/libjawt/jawt.m 2015-10-15 12:37:48.603495574 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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 @@ -30,6 +30,11 @@ #import "awt_DrawingSurface.h" /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Get the AWT native structure. * This function returns JNI_FALSE if an error occurs. */ --- old/src/java.desktop/macosx/native/libosxapp/NSApplicationAWT.h 2015-10-15 12:37:51.339649453 -0400 +++ new/src/java.desktop/macosx/native/libosxapp/NSApplicationAWT.h 2015-10-15 12:37:50.627609409 -0400 @@ -23,6 +23,12 @@ * questions. */ +/* + * Must include this before JavaNativeFoundation.h to get jni.h from build + */ +#include "jni.h" +#include "jni_util.h" + #import #import --- old/src/java.desktop/macosx/native/libosxapp/NSApplicationAWT.m 2015-10-15 12:37:53.383764413 -0400 +++ new/src/java.desktop/macosx/native/libosxapp/NSApplicationAWT.m 2015-10-15 12:37:52.663723918 -0400 @@ -33,6 +33,10 @@ #import "QueuingApplicationDelegate.h" #import "AWTIconData.h" +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad static BOOL sUsingDefaultNIB = YES; static NSString *SHARED_FRAMEWORK_BUNDLE = @"/System/Library/Frameworks/JavaVM.framework"; @@ -432,10 +436,10 @@ @end -void OSXAPP_SetApplicationDelegate(id delegate) +void OSXAPP_SetApplicationDelegate(id newdelegate) { AWT_ASSERT_APPKIT_THREAD; - applicationDelegate = delegate; + applicationDelegate = newdelegate; if (NSApp != nil) { [NSApp setDelegate: applicationDelegate]; --- old/src/java.desktop/macosx/native/libosxui/AquaLookAndFeel.m 2015-10-15 12:37:55.423879147 -0400 +++ new/src/java.desktop/macosx/native/libosxui/AquaLookAndFeel.m 2015-10-15 12:37:54.703838653 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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,6 +23,10 @@ * questions. */ +// Must include this before JavaNativeFoundation.h to get jni.h from build +#include "jni.h" +#include "jni_util.h" + #import /* @@ -30,6 +34,7 @@ * AWT's JNI_OnLoad called multiple times * Please remove when has been resolved. */ -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved) +{ return JNI_VERSION_1_4; } --- old/src/java.desktop/share/native/include/jawt.h 2015-10-15 12:37:58.424047874 -0400 +++ new/src/java.desktop/share/native/include/jawt.h 2015-10-15 12:37:57.700007155 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2015, 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 @@ -27,6 +27,7 @@ #define _JAVASOFT_JAWT_H_ #include "jni.h" +#include "jni_util.h" #ifdef __cplusplus extern "C" { --- old/src/java.desktop/share/native/libfontmanager/sunFont.c 2015-10-15 12:38:00.444161486 -0400 +++ new/src/java.desktop/share/native/libfontmanager/sunFont.c 2015-10-15 12:37:59.720120764 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2015, 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 @@ -37,6 +37,10 @@ static void *theNullScalerContext = NULL; extern void AccelGlyphCache_RemoveAllCellInfos(GlyphInfo *glyph); +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad JNIEXPORT jlong JNICALL Java_sun_font_NullFontScaler_getNullScalerContext --- old/src/java.desktop/share/native/libjavajpeg/jpegdecoder.c 2015-10-15 12:38:02.464275095 -0400 +++ new/src/java.desktop/share/native/libjavajpeg/jpegdecoder.c 2015-10-15 12:38:01.756235274 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2015, 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 @@ -67,7 +67,7 @@ JavaVM *jvm; JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { jvm = vm; return JNI_VERSION_1_2; --- old/src/java.desktop/share/native/libjsound/Platform.c 2015-10-15 12:38:04.496389377 -0400 +++ new/src/java.desktop/share/native/libjsound/Platform.c 2015-10-15 12:38:03.784349331 -0400 @@ -28,6 +28,10 @@ // Platform.java includes #include "com_sun_media_sound_Platform.h" +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad /* * Class: com_sun_media_sound_Platform --- old/src/java.desktop/share/native/libjsound/Utilities.h 2015-10-15 12:38:06.720514464 -0400 +++ new/src/java.desktop/share/native/libjsound/Utilities.h 2015-10-15 12:38:05.980472843 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -24,6 +24,7 @@ */ #include +#include "jni_util.h" #include "SoundDefs.h" #include "Configure.h" // put flags for debug msgs etc. here --- old/src/java.desktop/share/native/liblcms/LCMS.c 2015-10-15 12:38:08.996642469 -0400 +++ new/src/java.desktop/share/native/liblcms/LCMS.c 2015-10-15 12:38:08.276601974 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2015, 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 @@ -134,7 +134,7 @@ JNU_ThrowByName(env, "java/awt/color/CMMException", errMsg); } -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *jvm, void *reserved) { javaVM = jvm; cmsSetLogErrorHandler(errorHandler); --- old/src/java.desktop/share/native/libmlib_image/mlib_ImageUtils.c 2015-10-15 12:38:11.064758778 -0400 +++ new/src/java.desktop/share/native/libmlib_image/mlib_ImageUtils.c 2015-10-15 12:38:10.348718509 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, 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,6 +26,14 @@ #include "mlib_image.h" +#include +#include "jni_util.h" + +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + /***************************************************************/ typedef union { mlib_d64 db; --- old/src/java.desktop/share/native/libsplashscreen/java_awt_SplashScreen.c 2015-10-15 12:38:13.100873288 -0400 +++ new/src/java.desktop/share/native/libsplashscreen/java_awt_SplashScreen.c 2015-10-15 12:38:12.376832568 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -30,7 +30,7 @@ #include JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM * vm, void *reserved) +DEF_JNI_OnLoad(JavaVM * vm, void *reserved) { return JNI_VERSION_1_2; } --- old/src/java.desktop/unix/native/libawt/awt/awt_LoadLibrary.c 2015-10-15 12:38:15.144988247 -0400 +++ new/src/java.desktop/unix/native/libawt/awt/awt_LoadLibrary.c 2015-10-15 12:38:14.428947978 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, 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 @@ -178,7 +178,7 @@ } JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { return AWT_OnLoad(vm, reserved); } --- old/src/java.desktop/unix/native/libawt_headless/awt/HeadlessToolkit.c 2015-10-15 12:38:17.165101857 -0400 +++ new/src/java.desktop/unix/native/libawt_headless/awt/HeadlessToolkit.c 2015-10-15 12:38:16.449061587 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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 @@ -31,14 +31,17 @@ extern JavaVM *jvm; JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { jvm = vm; return JNI_VERSION_1_2; } +#ifndef STATIC_BUILD +// The same function exists in libawt.a::awt_LoadLibrary.c JNIEXPORT jboolean JNICALL AWTIsHeadless() { return JNI_TRUE; } +#endif #endif --- old/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c 2015-10-15 12:38:19.193215917 -0400 +++ new/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c 2015-10-15 12:38:18.477175647 -0400 @@ -151,7 +151,7 @@ JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { jvm = vm; return JNI_VERSION_1_2; --- old/src/java.desktop/unix/native/libjawt/jawt.c 2015-10-15 12:38:21.225330202 -0400 +++ new/src/java.desktop/unix/native/libjawt/jawt.c 2015-10-15 12:38:20.509289932 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2015, 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 @@ -28,6 +28,11 @@ #include "awt_DrawingSurface.h" /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Get the AWT native structure. This function returns JNI_FALSE if * an error occurs. */ --- old/src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.c 2015-10-15 12:38:23.261444712 -0400 +++ new/src/java.desktop/unix/native/libjsound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.c 2015-10-15 12:38:22.545404442 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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 @@ -44,6 +44,11 @@ static int alsa_enumerate_pcm_subdevices = FALSE; // default: no static int alsa_enumerate_midi_subdevices = FALSE; // default: no +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + void initAlsaSupport() { char* enumerate; if (!alsa_inited) { --- old/src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp 2015-10-15 12:38:25.305559671 -0400 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp 2015-10-15 12:38:24.581518952 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2015, 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 @@ -91,7 +91,7 @@ JavaVM *jvm = NULL; JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *vm, void *reserved) +DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { TRY; --- old/src/java.desktop/windows/native/libjawt/jawt.cpp 2015-10-15 12:38:27.549685879 -0400 +++ new/src/java.desktop/windows/native/libjawt/jawt.cpp 2015-10-15 12:38:26.681637061 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2015, 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 @@ -30,6 +30,11 @@ #include "awt_DrawingSurface.h" /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Get the AWT native structure. This function returns JNI_FALSE if * an error occurs. */ --- old/src/java.instrument/share/native/libinstrument/InstrumentationImplNativeMethods.c 2015-10-15 12:38:29.729808488 -0400 +++ new/src/java.instrument/share/native/libinstrument/InstrumentationImplNativeMethods.c 2015-10-15 12:38:28.937763944 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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 @@ -50,6 +50,11 @@ */ /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Class: sun_instrument_InstrumentationImpl * Method: isModifiableClass0 * Signature: (Ljava/lang/Class;)Z --- old/src/java.instrument/share/native/libinstrument/InvocationAdapter.c 2015-10-15 12:38:31.765922998 -0400 +++ new/src/java.instrument/share/native/libinstrument/InvocationAdapter.c 2015-10-15 12:38:31.053882953 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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 @@ -141,7 +141,7 @@ * to create boot class path segments to append to the boot class path. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *tail, void * reserved) { +DEF_Agent_OnLoad(JavaVM *vm, char *tail, void * reserved) { JPLISInitializationError initerror = JPLIS_INIT_ERROR_NONE; jint result = JNI_OK; JPLISAgent * agent = NULL; @@ -290,7 +290,7 @@ * the JPLIS library. */ JNIEXPORT jint JNICALL -Agent_OnAttach(JavaVM* vm, char *args, void * reserved) { +DEF_Agent_OnAttach(JavaVM* vm, char *args, void * reserved) { JPLISInitializationError initerror = JPLIS_INIT_ERROR_NONE; jint result = JNI_OK; JPLISAgent * agent = NULL; @@ -435,7 +435,7 @@ JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) { +DEF_Agent_OnUnload(JavaVM *vm) { } --- old/src/java.instrument/share/native/libinstrument/JarFacade.h 2015-10-15 12:38:34.074052806 -0400 +++ new/src/java.instrument/share/native/libinstrument/JarFacade.h 2015-10-15 12:38:33.358012538 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2015, 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,6 +23,10 @@ * questions. */ +#ifdef STATIC_BUILD +#define getAttribute JarGetAttribute +#endif + typedef struct _jarAttribute { char* name; char* value; --- old/src/java.instrument/share/native/libinstrument/Utilities.h 2015-10-15 12:38:36.118167766 -0400 +++ new/src/java.instrument/share/native/libinstrument/Utilities.h 2015-10-15 12:38:35.398127271 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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,6 +32,13 @@ #include #include +#include "jni_util.h" + +#ifdef STATIC_BUILD +#define allocate instAllocate +#define deallocate instDeallocate +#endif + #ifdef __cplusplus extern "C" { --- old/src/java.management/share/native/libmanagement/management.c 2015-10-15 12:38:38.142281601 -0400 +++ new/src/java.management/share/native/libmanagement/management.c 2015-10-15 12:38:37.422241106 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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 @@ -25,6 +25,7 @@ #include #include +#include "jni_util.h" #include "jvm.h" #include "management.h" @@ -35,7 +36,7 @@ jint jmm_version = 0; JNIEXPORT jint JNICALL - JNI_OnLoad(JavaVM *vm, void *reserved) { + DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEnv* env; jvm = vm; --- old/src/java.prefs/macosx/native/libprefs/MacOSXPreferencesFile.m 2015-10-15 12:38:40.166395436 -0400 +++ new/src/java.prefs/macosx/native/libprefs/MacOSXPreferencesFile.m 2015-10-15 12:38:39.450355167 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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 @@ -64,6 +64,11 @@ #include "jlong.h" #include "jvm.h" +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + // Throw an OutOfMemoryError with the given message. static void throwOutOfMemoryError(JNIEnv *env, const char *msg) --- old/src/java.prefs/unix/native/libprefs/FileSystemPreferences.c 2015-10-15 12:38:42.238511971 -0400 +++ new/src/java.prefs/unix/native/libprefs/FileSystemPreferences.c 2015-10-15 12:38:41.530472151 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2015, 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,6 +35,11 @@ #include #include "jni_util.h" +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + JNIEXPORT jint JNICALL Java_java_util_prefs_FileSystemPreferences_chmod(JNIEnv *env, jclass thisclass, jstring java_fname, jint permission) { --- old/src/java.prefs/windows/native/libprefs/WindowsPreferences.c 2015-10-15 12:38:44.302628056 -0400 +++ new/src/java.prefs/windows/native/libprefs/WindowsPreferences.c 2015-10-15 12:38:43.574587111 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, 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 @@ -31,6 +31,12 @@ #ifdef __cplusplus extern "C" { #endif + +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + JNIEXPORT jintArray JNICALL Java_java_util_prefs_WindowsPreferences_WindowsRegOpenKey (JNIEnv* env, jclass this_class, jint hKey, jbyteArray lpSubKey, jint securityMask) { HKEY handle; --- old/src/java.security.jgss/macosx/native/libosxkrb5/nativeccache.c 2015-10-15 12:38:47.254794084 -0400 +++ new/src/java.security.jgss/macosx/native/libosxkrb5/nativeccache.c 2015-10-15 12:38:45.610701621 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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 @@ -28,6 +28,8 @@ #import #import +#include "jni_util.h" + /* * Based largely on klist.c, * @@ -92,7 +94,7 @@ * Class: sun_security_krb5_KrbCreds * Method: JNI_OnLoad */ -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *jvm, void *reserved) { JNIEnv *env; @@ -191,7 +193,7 @@ * Class: sun_security_jgss_KrbCreds * Method: JNI_OnUnload */ -JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved) +JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *jvm, void *reserved) { JNIEnv *env; --- old/src/java.security.jgss/share/native/libj2gss/NativeUtil.c 2015-10-15 12:38:50.130955838 -0400 +++ new/src/java.security.jgss/share/native/libj2gss/NativeUtil.c 2015-10-15 12:38:49.414915568 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -27,6 +27,7 @@ #include "NativeFunc.h" #include "jlong.h" #include +#include "jni_util.h" const int JAVA_DUPLICATE_TOKEN_CODE = 19; /* DUPLICATE_TOKEN */ const int JAVA_OLD_TOKEN_CODE = 20; /* OLD_TOKEN */ @@ -94,7 +95,7 @@ int JGSS_DEBUG; JNIEXPORT jint JNICALL -JNI_OnLoad(JavaVM *jvm, void *reserved) { +DEF_JNI_OnLoad(JavaVM *jvm, void *reserved) { JNIEnv *env; jclass cls; @@ -363,7 +364,7 @@ } JNIEXPORT void JNICALL -JNI_OnUnload(JavaVM *jvm, void *reserved) { +DEF_JNI_OnUnload(JavaVM *jvm, void *reserved) { JNIEnv *env; if ((*jvm)->GetEnv(jvm, (void **)&env, JNI_VERSION_1_2)) { --- old/src/java.security.jgss/share/native/libj2gss/NativeUtil.h 2015-10-15 12:38:52.191071698 -0400 +++ new/src/java.security.jgss/share/native/libj2gss/NativeUtil.h 2015-10-15 12:38:51.467030979 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -54,9 +54,6 @@ extern jstring getMinorMessage(JNIEnv *, jobject, OM_uint32); extern int sameMech(gss_OID, gss_OID); - JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *, void *); - JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *, void *); - extern int JGSS_DEBUG; extern jclass CLS_Object; --- old/src/java.security.jgss/windows/native/libw2k_lsa_auth/NativeCreds.c 2015-10-15 12:38:54.455199032 -0400 +++ new/src/java.security.jgss/windows/native/libw2k_lsa_auth/NativeCreds.c 2015-10-15 12:38:53.659154262 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, 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 @@ -42,6 +42,7 @@ #include #include #include +#include "jni_util.h" #include #undef LSA_SUCCESS @@ -107,7 +108,7 @@ * Method: JNI_OnLoad */ -JNIEXPORT jint JNICALL JNI_OnLoad( +JNIEXPORT jint JNICALL DEF_JNI_OnLoad( JavaVM *jvm, void *reserved) { @@ -329,7 +330,7 @@ * Method: JNI_OnUnload */ -JNIEXPORT void JNICALL JNI_OnUnload( +JNIEXPORT void JNICALL DEF_JNI_OnUnload( JavaVM *jvm, void *reserved) { --- old/src/java.smartcardio/share/native/libj2pcsc/pcsc.c 2015-10-15 12:38:56.547316692 -0400 +++ new/src/java.smartcardio/share/native/libj2pcsc/pcsc.c 2015-10-15 12:38:55.819275747 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -55,6 +55,8 @@ #include "pcsc_md.h" +#include "jni_util.h" + #define MAX_STACK_BUFFER_SIZE 8192 // make the buffers larger than what should be necessary, just in case @@ -101,7 +103,7 @@ } } -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { return JNI_VERSION_1_4; } --- old/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c 2015-10-15 12:38:58.595431877 -0400 +++ new/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c 2015-10-15 12:38:57.859390482 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -50,6 +50,11 @@ } while(0) /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Defines a callback that is invoked for each process */ typedef void (*ProcessCallback)(const pid_t pid, void* user_data); --- old/src/jdk.attach/macosx/native/libattach/VirtualMachineImpl.c 2015-10-15 12:39:01.571599255 -0400 +++ new/src/jdk.attach/macosx/native/libattach/VirtualMachineImpl.c 2015-10-15 12:39:00.847558535 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -51,6 +51,11 @@ } while(0) /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Class: sun_tools_attach_VirtualMachineImpl * Method: socket * Signature: ()I --- old/src/jdk.attach/solaris/native/libattach/VirtualMachineImpl.c 2015-10-15 12:39:03.635715341 -0400 +++ new/src/jdk.attach/solaris/native/libattach/VirtualMachineImpl.c 2015-10-15 12:39:02.899673946 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -46,6 +46,11 @@ } while(0) /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Class: sun_tools_attach_VirtualMachineImpl * Method: open * Signature: (Ljava/lang/String;)I --- old/src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c 2015-10-15 12:39:06.003848524 -0400 +++ new/src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c 2015-10-15 12:39:05.127799255 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -87,6 +87,10 @@ #define ERR_OPEN_JVM_FAIL 200 #define ERR_GET_ENQUEUE_FUNC_FAIL 201 +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad /* * Code copied to target process --- old/src/jdk.crypto.ec/share/native/libsunec/ECC_JNI.cpp 2015-10-15 12:39:08.351980582 -0400 +++ new/src/jdk.crypto.ec/share/native/libsunec/ECC_JNI.cpp 2015-10-15 12:39:07.395926814 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2015, 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 @@ -24,6 +24,7 @@ */ #include +#include "jni_util.h" #include "impl/ecc_impl.h" #define ILLEGAL_STATE_EXCEPTION "java/lang/IllegalStateException" @@ -36,6 +37,11 @@ extern "C" { /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Throws an arbitrary Java exception. */ void ThrowException(JNIEnv *env, const char *exceptionName) --- old/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp 2015-10-15 12:39:10.392095317 -0400 +++ new/src/jdk.crypto.mscapi/windows/native/libsunmscapi/security.cpp 2015-10-15 12:39:09.668054597 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2015, 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 @@ -29,6 +29,7 @@ // #include +#include "jni_util.h" #include #include #include @@ -51,6 +52,11 @@ extern "C" { /* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + +/* * Throws an arbitrary Java exception. * The exception message is a Windows system error message. */ --- old/src/jdk.crypto.pkcs11/share/native/libj2pkcs11/p11_general.c 2015-10-15 12:39:12.440210503 -0400 +++ new/src/jdk.crypto.pkcs11/share/native/libj2pkcs11/p11_general.c 2015-10-15 12:39:11.724170234 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. */ /* Copyright (c) 2002 Graz University of Technology. All rights reserved. @@ -73,7 +73,7 @@ JavaVM* jvm = NULL; -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { jvm = vm; return JNI_VERSION_1_4; } --- old/src/jdk.crypto.ucrypto/solaris/native/libj2ucrypto/nativeCrypto.c 2015-10-15 12:39:14.472324790 -0400 +++ new/src/jdk.crypto.ucrypto/solaris/native/libj2ucrypto/nativeCrypto.c 2015-10-15 12:39:13.756284521 -0400 @@ -27,6 +27,7 @@ #include #include #include +#include "jni_util.h" #include #include "nativeCrypto.h" #include "nativeFunc.h" @@ -59,7 +60,7 @@ (*env)->DeleteLocalRef(env, jExClass); } -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { +JNIEXPORT jint JNICALL DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { return JNI_VERSION_1_4; } --- old/src/jdk.deploy.osx/macosx/native/libapplescriptengine/AppleScriptEngine.m 2015-10-15 12:39:16.504439076 -0400 +++ new/src/jdk.deploy.osx/macosx/native/libapplescriptengine/AppleScriptEngine.m 2015-10-15 12:39:15.780398352 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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,6 +26,10 @@ #import "apple_applescript_AppleScriptEngine.h" #import "apple_applescript_AppleScriptEngineFactory.h" +// Must include this before JavaNativeFoundation.h to get jni.h from build +#include "jni.h" +#include "jni_util.h" + #import #import "NS_Java_ConversionUtils.h" @@ -33,6 +37,10 @@ //#define DEBUG 1 +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad /* * Class: apple_applescript_AppleScriptEngineFactory --- old/src/jdk.deploy.osx/macosx/native/libosx/Dispatch.m 2015-10-15 12:39:18.628558533 -0400 +++ new/src/jdk.deploy.osx/macosx/native/libosx/Dispatch.m 2015-10-15 12:39:17.824513316 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, 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,11 +23,21 @@ * questions. */ +/* + * Must include this before JavaNativeFoundation.h to get jni.h from build + */ +#include "jni.h" +#include "jni_util.h" + #import "com_apple_concurrent_LibDispatchNative.h" #import #import +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad /* * Class: com_apple_concurrent_LibDispatchNative --- old/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c 2015-10-15 12:39:20.688674394 -0400 +++ new/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c 2015-10-15 12:39:19.948632774 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -194,7 +194,7 @@ * Returning JNI_ERR will cause the java_g VM to core dump, be careful. */ JNIEXPORT jint JNICALL -Agent_OnLoad(JavaVM *vm, char *options, void *reserved) +DEF_Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { jvmtiError error; jvmtiCapabilities needed_capabilities; @@ -380,7 +380,7 @@ } JNIEXPORT void JNICALL -Agent_OnUnload(JavaVM *vm) +DEF_Agent_OnUnload(JavaVM *vm) { gdata->isLoaded = JNI_FALSE; --- old/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h 2015-10-15 12:39:22.752790480 -0400 +++ new/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.h 2015-10-15 12:39:22.024749535 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -39,7 +39,4 @@ void debugInit_exit(jvmtiError, const char *); void forceExit(int); -JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *, char *, void *); -JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *); - #endif --- old/src/jdk.jdwp.agent/share/native/libjdwp/transport.c 2015-10-15 12:39:24.780904540 -0400 +++ new/src/jdk.jdwp.agent/share/native/libjdwp/transport.c 2015-10-15 12:39:24.072864720 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -101,9 +101,10 @@ static void * loadTransportLibrary(const char *libdir, const char *name) { + char buf[MAXPATHLEN*2+100]; +#ifndef STATIC_BUILD void *handle; char libname[MAXPATHLEN+2]; - char buf[MAXPATHLEN*2+100]; const char *plibdir; /* Convert libdir from UTF-8 to platform encoding */ @@ -125,6 +126,9 @@ /* dlopen (unix) / LoadLibrary (windows) the transport library */ handle = dbgsysLoadLibrary(libname, buf, sizeof(buf)); return handle; +#else + return (dbgsysLoadLibrary(NULL, buf, sizeof(buf))); +#endif } /* --- old/src/jdk.jdwp.agent/share/native/libjdwp/util.h 2015-10-15 12:39:26.841020401 -0400 +++ new/src/jdk.jdwp.agent/share/native/libjdwp/util.h 2015-10-15 12:39:26.108979231 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, 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 @@ -278,18 +278,6 @@ #define MOD_SYNTHETIC 0xf0000000 /* not in source code */ /* - * jlong conversion macros - */ -#define jlong_zero ((jlong) 0) -#define jlong_one ((jlong) 1) - -#define jlong_to_ptr(a) ((void*)(intptr_t)(a)) -#define ptr_to_jlong(a) ((jlong)(intptr_t)(a)) -#define jint_to_jlong(a) ((jlong)(a)) -#define jlong_to_jint(a) ((jint)(a)) - - -/* * util funcs */ void util_initialize(JNIEnv *env); --- old/src/jdk.jdwp.agent/share/native/libjdwp/vm_interface.h 2015-10-15 12:39:28.897136036 -0400 +++ new/src/jdk.jdwp.agent/share/native/libjdwp/vm_interface.h 2015-10-15 12:39:28.161094641 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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 @@ -33,6 +33,7 @@ #include #include #include +#include "jni_util.h" #include "log_messages.h" --- old/src/jdk.management/share/native/libmanagement_ext/management_ext.c 2015-10-15 12:39:31.165263595 -0400 +++ new/src/jdk.management/share/native/libmanagement_ext/management_ext.c 2015-10-15 12:39:30.373219051 -0400 @@ -25,6 +25,7 @@ #include #include +#include "jni_util.h" #include "jvm.h" #include "management_ext.h" @@ -35,7 +36,7 @@ jint jmm_version = 0; JNIEXPORT jint JNICALL - JNI_OnLoad(JavaVM *vm, void *reserved) { + DEF_JNI_OnLoad(JavaVM *vm, void *reserved) { JNIEnv* env; jvm = vm; --- old/src/jdk.pack200/share/native/common-unpack/utils.cpp 2015-10-15 12:39:33.205378331 -0400 +++ new/src/jdk.pack200/share/native/common-unpack/utils.cpp 2015-10-15 12:39:32.477337386 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2015, 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 @@ -77,6 +77,8 @@ #ifndef PRODUCT +#ifndef STATIC_BUILD +// use the definition in libjvm when building statically void breakpoint() { } // hook for debugger int assert_failed(const char* p) { char message[1<<12]; @@ -87,6 +89,7 @@ return 0; } #endif +#endif void unpack_abort(const char* msg, unpacker* u) { if (msg == null) msg = "corrupt pack file or internal error"; --- old/src/jdk.pack200/share/native/libunpack/jni.cpp 2015-10-15 12:39:35.241492842 -0400 +++ new/src/jdk.pack200/share/native/libunpack/jni.cpp 2015-10-15 12:39:34.517452122 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, 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 @@ -95,6 +95,11 @@ } while (JNI_FALSE) #endif +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + static jlong read_input_via_jni(unpacker* self, void* buf, jlong minlen, jlong maxlen); --- old/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2015-10-15 12:39:37.273607128 -0400 +++ new/src/jdk.sctp/unix/native/libsctp/SctpNet.c 2015-10-15 12:39:36.541565959 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2015, 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 @@ -43,7 +43,7 @@ static const char* nativeSctpLib = "libsctp.so.1"; static jboolean funcsLoaded = JNI_FALSE; -JNIEXPORT jint JNICALL JNI_OnLoad +JNIEXPORT jint JNICALL DEF_JNI_OnLoad (JavaVM *vm, void *reserved) { return JNI_VERSION_1_2; } --- old/src/jdk.security.auth/unix/native/libjaas/Unix.c 2015-10-15 12:39:39.321722313 -0400 +++ new/src/jdk.security.auth/unix/native/libjaas/Unix.c 2015-10-15 12:39:38.593681370 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, 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 @@ -28,6 +28,7 @@ #endif #include +#include "jni_util.h" #include "com_sun_security_auth_module_UnixSystem.h" #include #include @@ -36,6 +37,11 @@ #include #include +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + JNIEXPORT void JNICALL Java_com_sun_security_auth_module_UnixSystem_getUnixInfo (JNIEnv *env, jobject obj) { --- old/src/jdk.security.auth/windows/native/libjaas/nt.c 2015-10-15 12:39:41.409839749 -0400 +++ new/src/jdk.security.auth/windows/native/libjaas/nt.c 2015-10-15 12:39:40.669798129 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2015, 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 @@ -24,6 +24,7 @@ */ #include +#include "jni_util.h" #include "com_sun_security_auth_module_NTSystem.h" #include @@ -49,6 +50,11 @@ (*env)->ThrowNew(env, clazz, msg); } +/* + * Declare library specific JNI_Onload entry if static build + */ +DEF_STATIC_JNI_OnLoad + JNIEXPORT jlong JNICALL Java_com_sun_security_auth_module_NTSystem_getImpersonationToken0 (JNIEnv *env, jobject obj) {