122 ifeq ($(ARCH), aarch64)
123 ARCH_DATA_MODEL = 64
124 MAKE_ARGS += LP64=1
125 PLATFORM = linux-aarch64
126 VM_PLATFORM = linux_aarch64
127 HS_ARCH = aarch64
128 endif
129
130 # On 32 bit linux we build server and client, on 64 bit just server.
131 ifeq ($(JVM_VARIANTS),)
132 ifeq ($(ARCH_DATA_MODEL), 32)
133 JVM_VARIANTS:=client,server
134 JVM_VARIANT_CLIENT:=true
135 JVM_VARIANT_SERVER:=true
136 else
137 JVM_VARIANTS:=server
138 JVM_VARIANT_SERVER:=true
139 endif
140 endif
141
142 # determine if HotSpot is being built in JDK6 or earlier version
143 JDK6_OR_EARLIER=0
144 ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
145 # if the longer variable names (newer build style) are set, then check those
146 ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
147 JDK6_OR_EARLIER=1
148 endif
149 else
150 # the longer variables aren't set so check the shorter variable names
151 ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
152 JDK6_OR_EARLIER=1
153 endif
154 endif
155
156 ifeq ($(JDK6_OR_EARLIER),0)
157 # Full Debug Symbols is supported on JDK7 or newer.
158 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
159 # builds is enabled with debug info files ZIP'ed to save space. For
160 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
161 # debug build without debug info isn't very useful.
162 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
163 #
164 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
165 # disabled for a BUILD_FLAVOR == product build.
166 #
167 # Note: Use of a different variable name for the FDS override option
168 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
169 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
170 # in options via environment variables, use of distinct variables
171 # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
172 # product build, the FULL_DEBUG_SYMBOLS environment variable will be
173 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
174 # the same variable name is used, then different values can be picked
175 # up by different parts of the build. Just to be clear, we only need
176 # two variable names because the incoming option value can be
177 # overridden in some situations, e.g., a BUILD_FLAVOR != product
178 # build.
179
180 # Due to the multiple sub-make processes that occur this logic gets
181 # executed multiple times. We reduce the noise by at least checking that
182 # BUILD_FLAVOR has been set.
183 ifneq ($(BUILD_FLAVOR),)
184 ifeq ($(BUILD_FLAVOR), product)
185 FULL_DEBUG_SYMBOLS ?= 1
186 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
187 else
188 # debug variants always get Full Debug Symbols (if available)
189 ENABLE_FULL_DEBUG_SYMBOLS = 1
190 endif
191 $(eval $(call print_info, "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)"))
192 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
193
194 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
195 # Default OBJCOPY comes from GNU Binutils on Linux
196 ifeq ($(CROSS_COMPILE_ARCH),)
197 DEF_OBJCOPY=/usr/bin/objcopy
198 else
199 # Assume objcopy is part of the cross-compilation toolset
200 ifneq ($(ALT_COMPILER_PATH),)
201 DEF_OBJCOPY=$(ALT_COMPILER_PATH)/objcopy
202 endif
203 endif
216
217 # Library stripping policies for .debuginfo configs:
218 # all_strip - strips everything from the library
219 # min_strip - strips most stuff from the library; leaves minimum symbols
220 # no_strip - does not strip the library at all
221 #
222 # Oracle security policy requires "all_strip". A waiver was granted on
223 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
224 #
225 # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
226 #
227 STRIP_POLICY ?= min_strip
228
229 $(eval $(call print_info, "STRIP_POLICY=$(STRIP_POLICY)"))
230
231 ZIP_DEBUGINFO_FILES ?= 1
232
233 $(eval $(call print_info, "ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)"))
234 endif
235 endif # ENABLE_FULL_DEBUG_SYMBOLS=1
236 endif # BUILD_FLAVOR
237 endif # JDK_6_OR_EARLIER
238
239 JDK_INCLUDE_SUBDIR=linux
240
241 # Library suffix
242 LIBRARY_SUFFIX=so
243
244 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
245
246 # client and server subdirectories have symbolic links to ../libjsig.so
247 EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
248 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
249 ifeq ($(ZIP_DEBUGINFO_FILES),1)
250 EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.diz
251 else
252 EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.debuginfo
253 endif
254 endif
255 EXPORT_SERVER_DIR = $(EXPORT_LIB_ARCH_DIR)/server
256 EXPORT_CLIENT_DIR = $(EXPORT_LIB_ARCH_DIR)/client
257 EXPORT_MINIMAL_DIR = $(EXPORT_LIB_ARCH_DIR)/minimal
|
122 ifeq ($(ARCH), aarch64)
123 ARCH_DATA_MODEL = 64
124 MAKE_ARGS += LP64=1
125 PLATFORM = linux-aarch64
126 VM_PLATFORM = linux_aarch64
127 HS_ARCH = aarch64
128 endif
129
130 # On 32 bit linux we build server and client, on 64 bit just server.
131 ifeq ($(JVM_VARIANTS),)
132 ifeq ($(ARCH_DATA_MODEL), 32)
133 JVM_VARIANTS:=client,server
134 JVM_VARIANT_CLIENT:=true
135 JVM_VARIANT_SERVER:=true
136 else
137 JVM_VARIANTS:=server
138 JVM_VARIANT_SERVER:=true
139 endif
140 endif
141
142 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
143 # builds is enabled with debug info files ZIP'ed to save space. For
144 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
145 # debug build without debug info isn't very useful.
146 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
147 #
148 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
149 # disabled for a BUILD_FLAVOR == product build.
150 #
151 # Note: Use of a different variable name for the FDS override option
152 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
153 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
154 # in options via environment variables, use of distinct variables
155 # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
156 # product build, the FULL_DEBUG_SYMBOLS environment variable will be
157 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
158 # the same variable name is used, then different values can be picked
159 # up by different parts of the build. Just to be clear, we only need
160 # two variable names because the incoming option value can be
161 # overridden in some situations, e.g., a BUILD_FLAVOR != product
162 # build.
163
164 # Due to the multiple sub-make processes that occur this logic gets
165 # executed multiple times. We reduce the noise by at least checking that
166 # BUILD_FLAVOR has been set.
167 ifneq ($(BUILD_FLAVOR),)
168 ifeq ($(BUILD_FLAVOR), product)
169 FULL_DEBUG_SYMBOLS ?= 1
170 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
171 else
172 # debug variants always get Full Debug Symbols (if available)
173 ENABLE_FULL_DEBUG_SYMBOLS = 1
174 endif
175 $(eval $(call print_info, "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)"))
176 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
177
178 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
179 # Default OBJCOPY comes from GNU Binutils on Linux
180 ifeq ($(CROSS_COMPILE_ARCH),)
181 DEF_OBJCOPY=/usr/bin/objcopy
182 else
183 # Assume objcopy is part of the cross-compilation toolset
184 ifneq ($(ALT_COMPILER_PATH),)
185 DEF_OBJCOPY=$(ALT_COMPILER_PATH)/objcopy
186 endif
187 endif
200
201 # Library stripping policies for .debuginfo configs:
202 # all_strip - strips everything from the library
203 # min_strip - strips most stuff from the library; leaves minimum symbols
204 # no_strip - does not strip the library at all
205 #
206 # Oracle security policy requires "all_strip". A waiver was granted on
207 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
208 #
209 # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
210 #
211 STRIP_POLICY ?= min_strip
212
213 $(eval $(call print_info, "STRIP_POLICY=$(STRIP_POLICY)"))
214
215 ZIP_DEBUGINFO_FILES ?= 1
216
217 $(eval $(call print_info, "ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)"))
218 endif
219 endif # ENABLE_FULL_DEBUG_SYMBOLS=1
220 endif # BUILD_FLAVOR
221
222 JDK_INCLUDE_SUBDIR=linux
223
224 # Library suffix
225 LIBRARY_SUFFIX=so
226
227 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
228
229 # client and server subdirectories have symbolic links to ../libjsig.so
230 EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
231 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
232 ifeq ($(ZIP_DEBUGINFO_FILES),1)
233 EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.diz
234 else
235 EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.debuginfo
236 endif
237 endif
238 EXPORT_SERVER_DIR = $(EXPORT_LIB_ARCH_DIR)/server
239 EXPORT_CLIENT_DIR = $(EXPORT_LIB_ARCH_DIR)/client
240 EXPORT_MINIMAL_DIR = $(EXPORT_LIB_ARCH_DIR)/minimal
|