summaryrefslogtreecommitdiff
path: root/java/openjdk8/files/patch-static-libjli
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk8/files/patch-static-libjli')
-rw-r--r--java/openjdk8/files/patch-static-libjli121
1 files changed, 121 insertions, 0 deletions
diff --git a/java/openjdk8/files/patch-static-libjli b/java/openjdk8/files/patch-static-libjli
new file mode 100644
index 000000000000..606f0679cc9a
--- /dev/null
+++ b/java/openjdk8/files/patch-static-libjli
@@ -0,0 +1,121 @@
+--- common/autoconf/jdk-options.m4
++++ common/autoconf/jdk-options.m4
+@@ -407,6 +407,20 @@
+
+ ###############################################################################
+ #
++ # Enable or disable static linking of libjli on bsd only
++ #
++ AC_ARG_ENABLE(static-libjli, [AS_HELP_STRING([--enable-static-libjli],
++ [Enable staticly linking libjli on bsd @<:@disabled@:>@])],,
++ [enable_static_libjli=no])
++ if test "x$OPENJDK_TARGET_OS" = "xbsd" && test "x$enable_static_libjli" = "xyes"; then
++ BSD_STATIC_LIBJLI=bsd
++ else
++ BSD_STATIC_LIBJLI=
++ fi
++ AC_SUBST(BSD_STATIC_LIBJLI)
++
++ ###############################################################################
++ #
+ # Enable or disable the elliptic curve crypto implementation
+ #
+ AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
+--- common/autoconf/spec.gmk.in
++++ common/autoconf/spec.gmk.in
+@@ -283,6 +283,9 @@
+ # Enable unlimited crypto policy
+ UNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@
+
++# Build static libjli on bsd
++BSD_STATIC_LIBJLI=@BSD_STATIC_LIBJLI@
++
+ # Necessary additional compiler flags to compile X11
+ X_CFLAGS:=@X_CFLAGS@
+ X_LIBS:=@X_LIBS@
+--- jdk/make/CompileLaunchers.gmk
++++ jdk/make/CompileLaunchers.gmk
+@@ -49,7 +49,7 @@
+ ORIGIN_ROOT := /..
+ endif
+
+-ifneq ($(findstring $(OPENJDK_TARGET_OS), bsd macosx), )
++ifneq ($(findstring $(OPENJDK_TARGET_OS), $(BSD_STATIC_LIBJLI) macosx), )
+ ORIGIN_ARG := $(call SET_EXECUTABLE_ORIGIN)
+ else
+ ORIGIN_ARG := $(call SET_EXECUTABLE_ORIGIN,$(ORIGIN_ROOT)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli)
+@@ -90,9 +90,15 @@
+ $1_LDFLAGS := $3
+ $1_LDFLAGS_SUFFIX :=
+ ifeq ($(OPENJDK_TARGET_OS), bsd)
+- $1_LDFLAGS += -Wl,--whole-archive $(JDK_OUTPUTDIR)/objs/libjli_static.a \
+- -Wl,--no-whole-archive
+- $1_LDFLAGS_SUFFIX += -pthread
++ ifeq ($(BSD_STATIC_LIBJLI), bsd)
++ $1_LDFLAGS += -Wl,--whole-archive $(JDK_OUTPUTDIR)/objs/libjli_static.a \
++ -Wl,--no-whole-archive
++ $1_LDFLAGS_SUFFIX += -pthread
++ else
++ $1_LDFLAGS += \
++ $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)$(SHARED_LIBRARY_SUFFIX))
++ $1_LDFLAGS_SUFFIX += -L$(JDK_OUTPUTDIR)/lib$(OPENJDK_TARGET_CPU_LIBDIR)/jli -ljli -pthread
++ endif
+ endif
+
+ ifeq ($(OPENJDK_TARGET_OS), macosx)
+@@ -203,7 +209,7 @@
+
+ BUILD_LAUNCHERS += $$(BUILD_LAUNCHER_$1)
+
+- ifneq (,$(filter $(OPENJDK_TARGET_OS), bsd macosx aix))
++ ifneq (,$(filter $(OPENJDK_TARGET_OS), $(BSD_STATIC_LIBJLI) macosx aix))
+ $$(BUILD_LAUNCHER_$1): $(JDK_OUTPUTDIR)/objs/libjli_static.a
+ endif
+
+--- jdk/make/lib/CoreLibraries.gmk
++++ jdk/make/lib/CoreLibraries.gmk
+@@ -466,7 +466,7 @@
+
+ BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC)
+
+-else ifneq ($(findstring $(OPENJDK_TARGET_OS), bsd macosx), )
++else ifneq ($(findstring $(OPENJDK_TARGET_OS), $(BSD_STATIC_LIBJLI) macosx), )
+ #
+ # On BSD they do partial (incremental) linking of libjli_static.a
+ # code it here...rather than add support to NativeCompilation
+--- jdk/make/lib/ServiceabilityLibraries.gmk
++++ jdk/make/lib/ServiceabilityLibraries.gmk
+@@ -246,6 +246,15 @@
+ LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp
+ endif
+
++ifeq ($(OPENJDK_TARGET_OS), bsd)
++ ifeq ($(BSD_STATIC_LIBJLI), bsd)
++ LIBINSTRUMENT_LDFLAGS += -Xlinker --whole-archive $(JDK_OUTPUTDIR)/objs/libjli_static.a \
++ -Xlinker --no-whole-archive
++ else
++ LIBINSTRUMENT_LDFLAGS += $(call SET_SHARED_LIBRARY_ORIGIN,/jli)
++ endif
++endif
++
+ $(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \
+ LIBRARY := instrument, \
+ OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+@@ -263,8 +272,6 @@
+ $(LIBINSTRUMENT_LDFLAGS), \
+ LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
+ LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
+- LDFLAGS_bsd := -Xlinker --whole-archive $(JDK_OUTPUTDIR)/objs/libjli_static.a \
+- -Xlinker --no-whole-archive, \
+ LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
+ -framework Cocoa -framework Security -framework ApplicationServices, \
+ LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \
+@@ -281,7 +288,7 @@
+ OBJECT_DIR := $(LIBINSTRUMENT_DIR), \
+ DEBUG_SYMBOLS := true))
+
+-ifneq (, $(findstring $(OPENJDK_TARGET_OS), bsd macosx windows aix))
++ifneq (, $(findstring $(OPENJDK_TARGET_OS), $(BSD_STATIC_LIBJLI) macosx windows aix))
+ $(BUILD_LIBINSTRUMENT): $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX)
+ else
+ $(BUILD_LIBINSTRUMENT): $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX)