164 endif
165 endif
166
167 ifneq ($(filter $(OPENJDK_TARGET_OS), linux macosx windows), )
168 JVM_PRECOMPILED_HEADER := $(TOPDIR)/src/hotspot/share/precompiled/precompiled.hpp
169 endif
170
171 ifeq ($(OPENJDK_TARGET_CPU), x86)
172 JVM_EXCLUDE_PATTERNS += x86_64
173 else ifeq ($(OPENJDK_TARGET_CPU), x86_64)
174 JVM_EXCLUDE_PATTERNS += x86_32
175 endif
176
177 # Inline assembly for solaris
178 ifeq ($(OPENJDK_TARGET_OS), solaris)
179 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
180 JVM_CFLAGS += $(TOPDIR)/src/hotspot/os_cpu/solaris_x86/solaris_x86_64.il
181 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
182 JVM_CFLAGS += $(TOPDIR)/src/hotspot/os_cpu/solaris_sparc/solaris_sparc.il
183 endif
184 endif
185
186 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
187 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), false)
188 # NOTE: In the old build, we weirdly enough set -g/-g0 always, regardless
189 # of if debug symbols were needed. Without it, compilation fails on
190 # sparc! :-(
191 JVM_CFLAGS += -g0
192 endif
193 endif
194
195 ifeq ($(OPENJDK_TARGET_OS), windows)
196 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
197 RC_DESC := 64-Bit$(SPACE)
198 endif
199 JVM_RCFLAGS += -D"HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(RC_DESC)$(JVM_VARIANT) VM"
200 endif
201
202 JVM_OPTIMIZATION ?= HIGHEST_JVM
203
206 # default.
207 JVM_STRIPFLAGS ?= $(STRIPFLAGS)
208
209 ################################################################################
210 # Now set up the actual compilation of the main hotspot native library
211
212 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
213 NAME := jvm, \
214 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
215 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
216 SRC := $(JVM_SRC_DIRS), \
217 EXTRA_FILES := $(DTRACE_EXTRA_SOURCE_FILES), \
218 EXCLUDES := $(JVM_EXCLUDES), \
219 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
220 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
221 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
222 CFLAGS := $(JVM_CFLAGS), \
223 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
224 arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
225 DISABLED_WARNINGS_clang := tautological-compare, \
226 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
227 1540-1088 1500-010, \
228 ASFLAGS := $(JVM_ASFLAGS), \
229 LDFLAGS := $(JVM_LDFLAGS), \
230 LIBS := $(JVM_LIBS), \
231 OPTIMIZATION := $(JVM_OPTIMIZATION), \
232 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
233 MAPFILE := $(JVM_MAPFILE), \
234 USE_MAPFILE_FOR_SYMBOLS := true, \
235 STRIPFLAGS := $(JVM_STRIPFLAGS), \
236 EMBED_MANIFEST := true, \
237 RC_FLAGS := $(JVM_RCFLAGS), \
238 VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
239 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
240 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
241 ))
242
243 ifeq ($(OPENJDK_TARGET_OS), windows)
244 # It doesn't matter which jvm.lib file gets exported, but we need
245 # to pick just one.
|
164 endif
165 endif
166
167 ifneq ($(filter $(OPENJDK_TARGET_OS), linux macosx windows), )
168 JVM_PRECOMPILED_HEADER := $(TOPDIR)/src/hotspot/share/precompiled/precompiled.hpp
169 endif
170
171 ifeq ($(OPENJDK_TARGET_CPU), x86)
172 JVM_EXCLUDE_PATTERNS += x86_64
173 else ifeq ($(OPENJDK_TARGET_CPU), x86_64)
174 JVM_EXCLUDE_PATTERNS += x86_32
175 endif
176
177 # Inline assembly for solaris
178 ifeq ($(OPENJDK_TARGET_OS), solaris)
179 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
180 JVM_CFLAGS += $(TOPDIR)/src/hotspot/os_cpu/solaris_x86/solaris_x86_64.il
181 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
182 JVM_CFLAGS += $(TOPDIR)/src/hotspot/os_cpu/solaris_sparc/solaris_sparc.il
183 endif
184 # Exclude warnings in devstudio 12.6
185 ifeq ($(CC_VERSION_NUMBER), 5.15)
186 DISABLED_WARNINGS_solstudio := SEC_ARR_OUTSIDE_BOUND_READ \
187 SEC_ARR_OUTSIDE_BOUND_WRITE
188 endif
189 endif
190
191 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
192 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), false)
193 # NOTE: In the old build, we weirdly enough set -g/-g0 always, regardless
194 # of if debug symbols were needed. Without it, compilation fails on
195 # sparc! :-(
196 JVM_CFLAGS += -g0
197 endif
198 endif
199
200 ifeq ($(OPENJDK_TARGET_OS), windows)
201 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
202 RC_DESC := 64-Bit$(SPACE)
203 endif
204 JVM_RCFLAGS += -D"HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(RC_DESC)$(JVM_VARIANT) VM"
205 endif
206
207 JVM_OPTIMIZATION ?= HIGHEST_JVM
208
211 # default.
212 JVM_STRIPFLAGS ?= $(STRIPFLAGS)
213
214 ################################################################################
215 # Now set up the actual compilation of the main hotspot native library
216
217 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
218 NAME := jvm, \
219 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
220 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
221 SRC := $(JVM_SRC_DIRS), \
222 EXTRA_FILES := $(DTRACE_EXTRA_SOURCE_FILES), \
223 EXCLUDES := $(JVM_EXCLUDES), \
224 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
225 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
226 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
227 CFLAGS := $(JVM_CFLAGS), \
228 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
229 arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
230 DISABLED_WARNINGS_clang := tautological-compare, \
231 DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
232 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
233 1540-1088 1500-010, \
234 ASFLAGS := $(JVM_ASFLAGS), \
235 LDFLAGS := $(JVM_LDFLAGS), \
236 LIBS := $(JVM_LIBS), \
237 OPTIMIZATION := $(JVM_OPTIMIZATION), \
238 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
239 MAPFILE := $(JVM_MAPFILE), \
240 USE_MAPFILE_FOR_SYMBOLS := true, \
241 STRIPFLAGS := $(JVM_STRIPFLAGS), \
242 EMBED_MANIFEST := true, \
243 RC_FLAGS := $(JVM_RCFLAGS), \
244 VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
245 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
246 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
247 ))
248
249 ifeq ($(OPENJDK_TARGET_OS), windows)
250 # It doesn't matter which jvm.lib file gets exported, but we need
251 # to pick just one.
|