Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/make/solaris/makefiles/defs.make
32284 views
1
#
2
# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
#
5
# This code is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License version 2 only, as
7
# published by the Free Software Foundation.
8
#
9
# This code is distributed in the hope that it will be useful, but WITHOUT
10
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
# version 2 for more details (a copy is included in the LICENSE file that
13
# accompanied this code).
14
#
15
# You should have received a copy of the GNU General Public License version
16
# 2 along with this work; if not, write to the Free Software Foundation,
17
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
#
19
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
# or visit www.oracle.com if you need additional information or have any
21
# questions.
22
#
23
#
24
25
# The common definitions for hotspot solaris builds.
26
# Include the top level defs.make under make directory instead of this one.
27
# This file is included into make/defs.make.
28
29
# Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
30
SLASH_JAVA ?= /java
31
ARCH:=$(shell uname -p)
32
PATH_SEP = :
33
ifeq ($(LP64), 1)
34
ARCH_DATA_MODEL=64
35
else
36
ARCH_DATA_MODEL=32
37
endif
38
39
ifeq ($(ARCH),sparc)
40
ifeq ($(ARCH_DATA_MODEL), 64)
41
MAKE_ARGS += LP64=1
42
PLATFORM=solaris-sparcv9
43
VM_PLATFORM=solaris_sparcv9
44
else
45
PLATFORM=solaris-sparc
46
VM_PLATFORM=solaris_sparc
47
endif
48
HS_ARCH=sparc
49
else
50
ifeq ($(ARCH_DATA_MODEL), 64)
51
MAKE_ARGS += LP64=1
52
PLATFORM=solaris-amd64
53
VM_PLATFORM=solaris_amd64
54
HS_ARCH=x86
55
else
56
PLATFORM=solaris-i586
57
VM_PLATFORM=solaris_i486
58
HS_ARCH=x86
59
endif
60
endif
61
62
# On 32 bit solaris we build server and client, on 64 bit just server.
63
ifeq ($(JVM_VARIANTS),)
64
ifeq ($(ARCH_DATA_MODEL), 32)
65
JVM_VARIANTS:=client,server
66
JVM_VARIANT_CLIENT:=true
67
JVM_VARIANT_SERVER:=true
68
else
69
JVM_VARIANTS:=server
70
JVM_VARIANT_SERVER:=true
71
endif
72
endif
73
74
# determine if HotSpot is being built in JDK6 or earlier version
75
JDK6_OR_EARLIER=0
76
ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
77
# if the longer variable names (newer build style) are set, then check those
78
ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
79
JDK6_OR_EARLIER=1
80
endif
81
else
82
# the longer variables aren't set so check the shorter variable names
83
ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
84
JDK6_OR_EARLIER=1
85
endif
86
endif
87
88
ifeq ($(JDK6_OR_EARLIER),0)
89
# Full Debug Symbols is supported on JDK7 or newer.
90
# The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
91
# builds is enabled with debug info files ZIP'ed to save space. For
92
# BUILD_FLAVOR != product builds, FDS is always enabled, after all a
93
# debug build without debug info isn't very useful.
94
# The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
95
#
96
# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
97
# disabled for a BUILD_FLAVOR == product build.
98
#
99
# Note: Use of a different variable name for the FDS override option
100
# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
101
# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
102
# in options via environment variables, use of distinct variables
103
# prevents strange behaviours. For example, in a BUILD_FLAVOR !=
104
# product build, the FULL_DEBUG_SYMBOLS environment variable will be
105
# 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
106
# the same variable name is used, then different values can be picked
107
# up by different parts of the build. Just to be clear, we only need
108
# two variable names because the incoming option value can be
109
# overridden in some situations, e.g., a BUILD_FLAVOR != product
110
# build.
111
112
# Due to the multiple sub-make processes that occur this logic gets
113
# executed multiple times. We reduce the noise by at least checking that
114
# BUILD_FLAVOR has been set.
115
ifneq ($(BUILD_FLAVOR),)
116
ifeq ($(BUILD_FLAVOR), product)
117
FULL_DEBUG_SYMBOLS ?= 1
118
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
119
else
120
# debug variants always get Full Debug Symbols (if available)
121
ENABLE_FULL_DEBUG_SYMBOLS = 1
122
endif
123
_JUNK_ := $(shell \
124
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
125
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
126
127
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
128
# Default OBJCOPY comes from the SUNWbinutils package:
129
DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
130
OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
131
ifneq ($(ALT_OBJCOPY),)
132
_JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
133
OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
134
endif
135
136
ifneq ($(OBJCOPY),)
137
# OBJCOPY version check:
138
# - version number is last blank separate word on first line
139
# - version number formats that have been seen:
140
# - <major>.<minor>
141
# - <major>.<minor>.<micro>
142
#
143
# Full Debug Symbols on Solaris needs version 2.21.1 or newer.
144
#
145
OBJCOPY_VERS_CHK := $(shell \
146
$(OBJCOPY) --version \
147
| sed -n \
148
-e 's/.* //' \
149
-e '/^[01]\./b bad' \
150
-e '/^2\./{' \
151
-e ' s/^2\.//' \
152
-e ' /^[0-9]$$/b bad' \
153
-e ' /^[0-9]\./b bad' \
154
-e ' /^1[0-9]$$/b bad' \
155
-e ' /^1[0-9]\./b bad' \
156
-e ' /^20\./b bad' \
157
-e ' /^21\.0$$/b bad' \
158
-e ' /^21\.0\./b bad' \
159
-e '}' \
160
-e ':good' \
161
-e 's/.*/VALID_VERSION/p' \
162
-e 'q' \
163
-e ':bad' \
164
-e 's/.*/BAD_VERSION/p' \
165
-e 'q' \
166
)
167
ifeq ($(OBJCOPY_VERS_CHK),BAD_VERSION)
168
_JUNK_ := $(shell \
169
echo >&2 "WARNING: $(OBJCOPY) --version info:"; \
170
$(OBJCOPY) --version | sed -n -e 's/^/WARNING: /p' -e 'q' >&2; \
171
echo >&2 "WARNING: an objcopy version of 2.21.1 or newer" \
172
"is needed to create valid .debuginfo files."; \
173
echo >&2 "WARNING: ignoring above objcopy command."; \
174
echo >&2 "WARNING: patch 149063-01 or newer contains the" \
175
"correct Solaris 10 SPARC version."; \
176
echo >&2 "WARNING: patch 149064-01 or newer contains the" \
177
"correct Solaris 10 X86 version."; \
178
echo >&2 "WARNING: Solaris 11 Update 1 contains the" \
179
"correct version."; \
180
)
181
OBJCOPY=
182
endif
183
endif
184
185
ifeq ($(OBJCOPY),)
186
_JUNK_ := $(shell \
187
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
188
ENABLE_FULL_DEBUG_SYMBOLS=0
189
_JUNK_ := $(shell \
190
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
191
else
192
_JUNK_ := $(shell \
193
echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
194
195
# Library stripping policies for .debuginfo configs:
196
# all_strip - strips everything from the library
197
# min_strip - strips most stuff from the library; leaves minimum symbols
198
# no_strip - does not strip the library at all
199
#
200
# Oracle security policy requires "all_strip". A waiver was granted on
201
# 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
202
#
203
# Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
204
#
205
STRIP_POLICY ?= min_strip
206
207
_JUNK_ := $(shell \
208
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
209
210
ZIP_DEBUGINFO_FILES ?= 1
211
212
_JUNK_ := $(shell \
213
echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
214
endif
215
endif # ENABLE_FULL_DEBUG_SYMBOLS=1
216
endif # BUILD_FLAVOR
217
endif # JDK_6_OR_EARLIER
218
219
JDK_INCLUDE_SUBDIR=solaris
220
221
# Library suffix
222
LIBRARY_SUFFIX=so
223
224
EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
225
226
# client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
227
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
228
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
229
ifeq ($(ZIP_DEBUGINFO_FILES),1)
230
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
231
else
232
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
233
endif
234
endif
235
236
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
237
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
238
239
ifeq ($(JVM_VARIANT_SERVER),true)
240
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
241
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
242
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
243
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
244
ifeq ($(ARCH_DATA_MODEL),32)
245
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
246
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
247
endif
248
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
249
ifeq ($(ZIP_DEBUGINFO_FILES),1)
250
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
251
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz
252
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz
253
ifeq ($(ARCH_DATA_MODEL),32)
254
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.diz
255
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.diz
256
endif
257
else
258
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
259
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
260
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
261
ifeq ($(ARCH_DATA_MODEL),32)
262
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
263
EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
264
endif
265
endif
266
endif
267
endif
268
ifeq ($(JVM_VARIANT_CLIENT),true)
269
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
270
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
271
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
272
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
273
ifeq ($(ARCH_DATA_MODEL),32)
274
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
275
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
276
endif
277
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
278
ifeq ($(ZIP_DEBUGINFO_FILES),1)
279
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
280
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz
281
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz
282
ifeq ($(ARCH_DATA_MODEL),32)
283
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz
284
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz
285
endif
286
else
287
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
288
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
289
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
290
ifeq ($(ARCH_DATA_MODEL),32)
291
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
292
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
293
endif
294
endif
295
endif
296
endif
297
298
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
299
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
300
ifeq ($(ZIP_DEBUGINFO_FILES),1)
301
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
302
else
303
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
304
endif
305
endif
306
EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
307
308