126 $(VERSION_CFLAGS) \
127 -DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
128 -DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
129 -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
130 -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
131 -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
132 #
133
134 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
135 ifeq ($(USE_PRECOMPILED_HEADER), 0)
136 JVM_CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
137 endif
138
139 ################################################################################
140 # Platform specific setup
141
142 ifneq ($(filter $(OPENJDK_TARGET_OS), linux macosx windows), )
143 JVM_PRECOMPILED_HEADER := $(HOTSPOT_TOPDIR)/src/share/vm/precompiled/precompiled.hpp
144 endif
145
146 ifneq ($(filter $(OPENJDK_TARGET_OS), macosx aix solaris), )
147 # On macosx, aix and solaris we have to link with the C++ compiler
148 JVM_TOOLCHAIN := TOOLCHAIN_LINK_CXX
149 else
150 JVM_TOOLCHAIN := TOOLCHAIN_DEFAULT
151 endif
152
153 ifeq ($(OPENJDK_TARGET_CPU), x86)
154 JVM_EXCLUDE_PATTERNS += x86_64
155 else ifeq ($(OPENJDK_TARGET_CPU), x86_64)
156 JVM_EXCLUDE_PATTERNS += x86_32
157 endif
158
159 # Inline assembly for solaris
160 ifeq ($(OPENJDK_TARGET_OS), solaris)
161 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
162 JVM_CFLAGS += $(HOTSPOT_TOPDIR)/src/os_cpu/solaris_x86/vm/solaris_x86_64.il
163 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
164 JVM_CFLAGS += $(HOTSPOT_TOPDIR)/src/os_cpu/solaris_sparc/vm/solaris_sparc.il
165 endif
166 endif
167
168 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
169 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), false)
170 # NOTE: In the old build, we weirdly enough set -g/-g0 always, regardless
171 # of if debug symbols were needed. Without it, compilation fails on
172 # sparc! :-(
177 ifeq ($(OPENJDK_TARGET_OS), windows)
178 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
179 RC_DESC := 64-Bit$(SPACE)
180 endif
181 JVM_RCFLAGS += -D"HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(RC_DESC)$(JVM_VARIANT) VM"
182 endif
183
184 ifeq ($(OPENJDK_TARGET_OS), macosx)
185 # NOTE: The old build did not strip binaries on macosx.
186 JVM_STRIP_SYMBOLS := false
187 else
188 JVM_STRIP_SYMBOLS := true
189 endif
190
191 JVM_OPTIMIZATION ?= HIGHEST_JVM
192
193 ################################################################################
194 # Now set up the actual compilation of the main hotspot native library
195
196 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
197 TOOLCHAIN := $(JVM_TOOLCHAIN), \
198 LIBRARY := jvm, \
199 OUTPUT_DIR := $(JVM_OUTPUTDIR), \
200 SRC := $(JVM_SRC_DIRS), \
201 EXCLUDES := $(JVM_EXCLUDES), \
202 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
203 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
204 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
205 CFLAGS := $(JVM_CFLAGS), \
206 CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
207 CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
208 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
209 DISABLED_WARNINGS_clang := delete-non-virtual-dtor dynamic-class-memaccess \
210 empty-body format logical-op-parentheses parentheses \
211 parentheses-equality switch tautological-compare, \
212 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
213 1540-1088 1500-010, \
214 ASFLAGS := $(JVM_ASFLAGS), \
215 LDFLAGS := $(JVM_LDFLAGS), \
216 LIBS := $(JVM_LIBS), \
217 OPTIMIZATION := $(JVM_OPTIMIZATION), \
|
126 $(VERSION_CFLAGS) \
127 -DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
128 -DDEBUG_LEVEL='"$(DEBUG_LEVEL)"' \
129 -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
130 -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
131 -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
132 #
133
134 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
135 ifeq ($(USE_PRECOMPILED_HEADER), 0)
136 JVM_CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
137 endif
138
139 ################################################################################
140 # Platform specific setup
141
142 ifneq ($(filter $(OPENJDK_TARGET_OS), linux macosx windows), )
143 JVM_PRECOMPILED_HEADER := $(HOTSPOT_TOPDIR)/src/share/vm/precompiled/precompiled.hpp
144 endif
145
146 ifeq ($(OPENJDK_TARGET_CPU), x86)
147 JVM_EXCLUDE_PATTERNS += x86_64
148 else ifeq ($(OPENJDK_TARGET_CPU), x86_64)
149 JVM_EXCLUDE_PATTERNS += x86_32
150 endif
151
152 # Inline assembly for solaris
153 ifeq ($(OPENJDK_TARGET_OS), solaris)
154 ifeq ($(OPENJDK_TARGET_CPU), x86_64)
155 JVM_CFLAGS += $(HOTSPOT_TOPDIR)/src/os_cpu/solaris_x86/vm/solaris_x86_64.il
156 else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
157 JVM_CFLAGS += $(HOTSPOT_TOPDIR)/src/os_cpu/solaris_sparc/vm/solaris_sparc.il
158 endif
159 endif
160
161 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
162 ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), false)
163 # NOTE: In the old build, we weirdly enough set -g/-g0 always, regardless
164 # of if debug symbols were needed. Without it, compilation fails on
165 # sparc! :-(
170 ifeq ($(OPENJDK_TARGET_OS), windows)
171 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
172 RC_DESC := 64-Bit$(SPACE)
173 endif
174 JVM_RCFLAGS += -D"HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(RC_DESC)$(JVM_VARIANT) VM"
175 endif
176
177 ifeq ($(OPENJDK_TARGET_OS), macosx)
178 # NOTE: The old build did not strip binaries on macosx.
179 JVM_STRIP_SYMBOLS := false
180 else
181 JVM_STRIP_SYMBOLS := true
182 endif
183
184 JVM_OPTIMIZATION ?= HIGHEST_JVM
185
186 ################################################################################
187 # Now set up the actual compilation of the main hotspot native library
188
189 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \
190 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
191 LIBRARY := jvm, \
192 OUTPUT_DIR := $(JVM_OUTPUTDIR), \
193 SRC := $(JVM_SRC_DIRS), \
194 EXCLUDES := $(JVM_EXCLUDES), \
195 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \
196 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
197 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \
198 CFLAGS := $(JVM_CFLAGS), \
199 CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
200 CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
201 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \
202 DISABLED_WARNINGS_clang := delete-non-virtual-dtor dynamic-class-memaccess \
203 empty-body format logical-op-parentheses parentheses \
204 parentheses-equality switch tautological-compare, \
205 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \
206 1540-1088 1500-010, \
207 ASFLAGS := $(JVM_ASFLAGS), \
208 LDFLAGS := $(JVM_LDFLAGS), \
209 LIBS := $(JVM_LIBS), \
210 OPTIMIZATION := $(JVM_OPTIMIZATION), \
|