40
41 ################################################################################
42 # Platform independent setup
43
44 JVM_LDFLAGS += \
45 $(SHARED_LIBRARY_FLAGS) \
46 $(JVM_LDFLAGS_FEATURES) \
47 $(EXTRA_LDFLAGS) \
48 #
49
50 JVM_ASFLAGS += $(EXTRA_ASFLAGS)
51
52 JVM_LIBS += \
53 $(JVM_LIBS_FEATURES) \
54 #
55
56 # These files and directories are always excluded
57 JVM_EXCLUDE_FILES += args.cc
58 JVM_EXCLUDES += adlc
59
60 # Needed by vm_version.cpp
61 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
62 OPENJDK_TARGET_CPU_VM_VERSION := amd64
63 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
64 OPENJDK_TARGET_CPU_VM_VERSION := sparc
65 else ifeq ($(HOTSPOT_TARGET_CPU_ARCH), arm)
66 ifeq ($(OPENJDK_TARGET_CPU), aarch64)
67 # This sets the Oracle Aarch64 port to use arm64
68 # while the original Aarch64 port uses aarch64
69 OPENJDK_TARGET_CPU_VM_VERSION := arm64
70 endif
71 else
72 OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
73 endif
74
75 CFLAGS_VM_VERSION := \
76 $(VERSION_CFLAGS) \
77 -DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
78 -DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
79 -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
80 -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
141 JVM_OPTIMIZATION ?= HIGHEST_JVM
142
143 # Need to set JVM_STRIPFLAGS to the default value from SPEC since the STRIPFLAGS
144 # parameter to SetupNativeCompilation allows an empty value to override the
145 # default.
146 JVM_STRIPFLAGS ?= $(STRIPFLAGS)
147
148 ################################################################################
149 # Now set up the actual compilation of the main hotspot native library
150
151 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
152 NAME := jvm, \
153 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
154 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
155 SRC := $(JVM_SRC_DIRS), \
156 EXCLUDES := $(JVM_EXCLUDES), \
157 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
158 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
159 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
160 CFLAGS := $(JVM_CFLAGS), \
161 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
162 arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
163 DISABLED_WARNINGS_clang := tautological-compare, \
164 DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
165 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
166 1540-1088 1500-010, \
167 ASFLAGS := $(JVM_ASFLAGS), \
168 LDFLAGS := $(JVM_LDFLAGS), \
169 LIBS := $(JVM_LIBS), \
170 OPTIMIZATION := $(JVM_OPTIMIZATION), \
171 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
172 MAPFILE := $(JVM_MAPFILE), \
173 USE_MAPFILE_FOR_SYMBOLS := true, \
174 STRIPFLAGS := $(JVM_STRIPFLAGS), \
175 EMBED_MANIFEST := true, \
176 RC_FLAGS := $(JVM_RCFLAGS), \
177 VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
178 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
179 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
180 ))
181
182 # Always recompile vm_version.cpp if libjvm needs to be relinked. This ensures
183 # that the internal vm version is updated as it relies on __DATE__ and __TIME__
184 # macros.
185 VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/vm_version$(OBJ_SUFFIX)
186 $(VM_VERSION_OBJ): $(filter-out $(VM_VERSION_OBJ) $(JVM_MAPFILE), \
187 $(BUILD_LIBJVM_TARGET_DEPS))
188
189 ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
190 ifeq ($(OPENJDK_TARGET_OS), windows)
191 # It doesn't matter which jvm.lib file gets exported, but we need
192 # to pick just one.
193 ifeq ($(JVM_VARIANT), $(JVM_VARIANT_MAIN))
194 $(eval $(call SetupCopyFiles, COPY_JVM_LIB, \
195 DEST := $(LIB_OUTPUTDIR), \
196 FILES :=$(BUILD_LIBJVM_IMPORT_LIBRARY), \
197 ))
198 TARGETS += $(COPY_JVM_LIB)
199 endif
200 endif
201 endif
202
203 # AIX warning explanation:
204 # 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop.
205 # There are several infinite loops in the vm, so better suppress.
206 # 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...".
|
40
41 ################################################################################
42 # Platform independent setup
43
44 JVM_LDFLAGS += \
45 $(SHARED_LIBRARY_FLAGS) \
46 $(JVM_LDFLAGS_FEATURES) \
47 $(EXTRA_LDFLAGS) \
48 #
49
50 JVM_ASFLAGS += $(EXTRA_ASFLAGS)
51
52 JVM_LIBS += \
53 $(JVM_LIBS_FEATURES) \
54 #
55
56 # These files and directories are always excluded
57 JVM_EXCLUDE_FILES += args.cc
58 JVM_EXCLUDES += adlc
59
60 # Needed by abstract_vm_version.cpp
61 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
62 OPENJDK_TARGET_CPU_VM_VERSION := amd64
63 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
64 OPENJDK_TARGET_CPU_VM_VERSION := sparc
65 else ifeq ($(HOTSPOT_TARGET_CPU_ARCH), arm)
66 ifeq ($(OPENJDK_TARGET_CPU), aarch64)
67 # This sets the Oracle Aarch64 port to use arm64
68 # while the original Aarch64 port uses aarch64
69 OPENJDK_TARGET_CPU_VM_VERSION := arm64
70 endif
71 else
72 OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
73 endif
74
75 CFLAGS_VM_VERSION := \
76 $(VERSION_CFLAGS) \
77 -DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
78 -DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
79 -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
80 -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
141 JVM_OPTIMIZATION ?= HIGHEST_JVM
142
143 # Need to set JVM_STRIPFLAGS to the default value from SPEC since the STRIPFLAGS
144 # parameter to SetupNativeCompilation allows an empty value to override the
145 # default.
146 JVM_STRIPFLAGS ?= $(STRIPFLAGS)
147
148 ################################################################################
149 # Now set up the actual compilation of the main hotspot native library
150
151 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
152 NAME := jvm, \
153 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
154 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \
155 SRC := $(JVM_SRC_DIRS), \
156 EXCLUDES := $(JVM_EXCLUDES), \
157 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
158 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
159 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
160 CFLAGS := $(JVM_CFLAGS), \
161 abstract_vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
162 arguments.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
163 DISABLED_WARNINGS_clang := tautological-compare, \
164 DISABLED_WARNINGS_solstudio := $(DISABLED_WARNINGS_solstudio), \
165 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
166 1540-1088 1500-010, \
167 ASFLAGS := $(JVM_ASFLAGS), \
168 LDFLAGS := $(JVM_LDFLAGS), \
169 LIBS := $(JVM_LIBS), \
170 OPTIMIZATION := $(JVM_OPTIMIZATION), \
171 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \
172 MAPFILE := $(JVM_MAPFILE), \
173 USE_MAPFILE_FOR_SYMBOLS := true, \
174 STRIPFLAGS := $(JVM_STRIPFLAGS), \
175 EMBED_MANIFEST := true, \
176 RC_FLAGS := $(JVM_RCFLAGS), \
177 VERSIONINFO_RESOURCE := $(TOPDIR)/src/hotspot/os/windows/version.rc, \
178 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
179 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \
180 ))
181
182 # Always recompile abstract_vm_version.cpp if libjvm needs to be relinked. This ensures
183 # that the internal vm version is updated as it relies on __DATE__ and __TIME__
184 # macros.
185 ABSTRACT_VM_VERSION_OBJ := $(JVM_OUTPUTDIR)/objs/abstract_vm_version$(OBJ_SUFFIX)
186 $(ABSTRACT_VM_VERSION_OBJ): $(filter-out $(ABSTRACT_VM_VERSION_OBJ) $(JVM_MAPFILE), \
187 $(BUILD_LIBJVM_TARGET_DEPS))
188
189 ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
190 ifeq ($(OPENJDK_TARGET_OS), windows)
191 # It doesn't matter which jvm.lib file gets exported, but we need
192 # to pick just one.
193 ifeq ($(JVM_VARIANT), $(JVM_VARIANT_MAIN))
194 $(eval $(call SetupCopyFiles, COPY_JVM_LIB, \
195 DEST := $(LIB_OUTPUTDIR), \
196 FILES :=$(BUILD_LIBJVM_IMPORT_LIBRARY), \
197 ))
198 TARGETS += $(COPY_JVM_LIB)
199 endif
200 endif
201 endif
202
203 # AIX warning explanation:
204 # 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop.
205 # There are several infinite loops in the vm, so better suppress.
206 # 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...".
|