1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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)
|