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! :-( 166 JVM_CFLAGS += -g0 167 endif 168 endif 169 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), \ 211 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \ 212 MAPFILE := $(JVM_MAPFILE), \ 213 USE_MAPFILE_FOR_SYMBOLS := true, \ 214 STRIP_SYMBOLS := $(JVM_STRIP_SYMBOLS), \ 215 EMBED_MANIFEST := true, \ 216 RC_FLAGS := $(JVM_RCFLAGS), \ 217 VERSIONINFO_RESOURCE := $(HOTSPOT_TOPDIR)/src/os/windows/vm/version.rc, \ 218 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \ 219 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \ 220 )) 221 222 # AIX warning explanation: 223 # 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop. 224 # There are several infinite loops in the vm, so better suppress. 225 # 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...". 226 # 1540-0216 : (W) An expression of type .. cannot be converted to type .. 227 # In hotspot this fires for functionpointer to pointer conversions 228 # 1540-1088 : (W) The exception specification is being ignored. 229 # In hotspot this is caused by throw() in declaration of new() in nmethod.hpp. 230 # 1540-1090 : (I) The destructor of "..." might not be called. 231 # 1540-1639 : (I) The behavior of long type bit fields has changed ... 232 233 # Include mapfile generation. It relies on BUILD_LIBJVM_ALL_OBJS which is only 234 # defined after the above call to BUILD_LIBJVM. Mapfile will be generated 235 # after all object files are built, but before the jvm library is linked. 236 include lib/JvmMapfile.gmk 237 238 TARGETS += $(BUILD_LIBJVM) | 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! :-( 166 JVM_CFLAGS += -g0 167 endif 168 endif 169 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 JVM_OPTIMIZATION ?= HIGHEST_JVM 178 179 ################################################################################ 180 # Now set up the actual compilation of the main hotspot native library 181 182 $(eval $(call SetupNativeCompilation, BUILD_LIBJVM, \ 183 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ 184 LIBRARY := jvm, \ 185 OUTPUT_DIR := $(JVM_LIB_OUTPUTDIR), \ 186 SRC := $(JVM_SRC_DIRS), \ 187 EXCLUDES := $(JVM_EXCLUDES), \ 188 EXCLUDE_FILES := $(JVM_EXCLUDE_FILES), \ 189 EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \ 190 EXTRA_OBJECT_FILES := $(DTRACE_EXTRA_OBJECT_FILES), \ 191 CFLAGS := $(JVM_CFLAGS), \ 192 CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ 193 CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \ 194 vm_version.cpp_CXXFLAGS := $(CFLAGS_VM_VERSION), \ 195 DISABLED_WARNINGS_clang := delete-non-virtual-dtor dynamic-class-memaccess \ 196 empty-body format logical-op-parentheses parentheses \ 197 parentheses-equality switch tautological-compare, \ 198 DISABLED_WARNINGS_xlc := 1540-0216 1540-0198 1540-1090 1540-1639 \ 199 1540-1088 1500-010, \ 200 ASFLAGS := $(JVM_ASFLAGS), \ 201 LDFLAGS := $(JVM_LDFLAGS), \ 202 LIBS := $(JVM_LIBS), \ 203 OPTIMIZATION := $(JVM_OPTIMIZATION), \ 204 OBJECT_DIR := $(JVM_OUTPUTDIR)/objs, \ 205 MAPFILE := $(JVM_MAPFILE), \ 206 USE_MAPFILE_FOR_SYMBOLS := true, \ 207 EMBED_MANIFEST := true, \ 208 RC_FLAGS := $(JVM_RCFLAGS), \ 209 VERSIONINFO_RESOURCE := $(HOTSPOT_TOPDIR)/src/os/windows/vm/version.rc, \ 210 PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \ 211 PRECOMPILED_HEADER_EXCLUDE := $(JVM_PRECOMPILED_HEADER_EXCLUDE), \ 212 )) 213 214 ifeq ($(OPENJDK_TARGET_OS), windows) 215 # It doesn't matter which jvm.lib file gets exported, but we need 216 # to pick just one. 217 ifeq ($(JVM_VARIANT), $(firstword $(JVM_VARIANTS))) 218 $(eval $(call SetupCopyFiles, COPY_JVM_LIB, \ 219 DEST := $(LIB_OUTPUTDIR), \ 220 FILES :=$(JVM_VARIANT_OUTPUTDIR)/libjvm/objs/jvm.lib, \ 221 )) 222 TARGETS += $(COPY_JVM_LIB) 223 endif 224 endif 225 226 # AIX warning explanation: 227 # 1500-010 : (W) WARNING in ...: Infinite loop. Program may not stop. 228 # There are several infinite loops in the vm, so better suppress. 229 # 1540-0198 : (W) The omitted keyword "private" is assumed for base class "...". 230 # 1540-0216 : (W) An expression of type .. cannot be converted to type .. 231 # In hotspot this fires for functionpointer to pointer conversions 232 # 1540-1088 : (W) The exception specification is being ignored. 233 # In hotspot this is caused by throw() in declaration of new() in nmethod.hpp. 234 # 1540-1090 : (I) The destructor of "..." might not be called. 235 # 1540-1639 : (I) The behavior of long type bit fields has changed ... 236 237 # Include mapfile generation. It relies on BUILD_LIBJVM_ALL_OBJS which is only 238 # defined after the above call to BUILD_LIBJVM. Mapfile will be generated 239 # after all object files are built, but before the jvm library is linked. 240 include lib/JvmMapfile.gmk 241 242 TARGETS += $(BUILD_LIBJVM) |