49 # by using -ffp-contract=off on GCC/Clang platforms. |
49 # by using -ffp-contract=off on GCC/Clang platforms. |
50 ifneq ($(FDLIBM_CFLAGS), ) |
50 ifneq ($(FDLIBM_CFLAGS), ) |
51 LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NORM) |
51 LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NORM) |
52 endif |
52 endif |
53 |
53 |
54 ifeq ($(OPENJDK_TARGET_OS), linux) |
54 ifeq ($(call isTargetOs, linux), true) |
55 BUILD_LIBJVM_ostream.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64 |
55 BUILD_LIBJVM_ostream.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64 |
56 BUILD_LIBJVM_logFileOutput.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64 |
56 BUILD_LIBJVM_logFileOutput.cpp_CXXFLAGS := -D_FILE_OFFSET_BITS=64 |
57 |
57 |
58 BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
58 BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
59 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
59 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := -DNO_PCH $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
63 sharedRuntimeTrig.cpp \ |
63 sharedRuntimeTrig.cpp \ |
64 sharedRuntimeTrans.cpp \ |
64 sharedRuntimeTrans.cpp \ |
65 # |
65 # |
66 endif |
66 endif |
67 |
67 |
68 ifeq ($(OPENJDK_TARGET_CPU), x86) |
68 ifeq ($(call isTargetCpu, x86), true) |
69 # Performance measurements show that by compiling GC related code, we could |
69 # Performance measurements show that by compiling GC related code, we could |
70 # significantly reduce the GC pause time on 32 bit Linux/Unix platforms by |
70 # significantly reduce the GC pause time on 32 bit Linux/Unix platforms by |
71 # compiling without the PIC flag (-fPIC on linux). |
71 # compiling without the PIC flag (-fPIC on linux). |
72 # See 6454213 for more details. |
72 # See 6454213 for more details. |
73 ALL_SRC := $(filter %.cpp, $(call CacheFind, $(TOPDIR)/src/hotspot/share)) |
73 ALL_SRC := $(filter %.cpp, $(call CacheFind, $(TOPDIR)/src/hotspot/share)) |
81 # BUILD_JVM_<srcfile>_CXXFLAGS := -fno-PIC |
81 # BUILD_JVM_<srcfile>_CXXFLAGS := -fno-PIC |
82 # This will get implicitly picked up by SetupNativeCompilation below. |
82 # This will get implicitly picked up by SetupNativeCompilation below. |
83 $(foreach s, $(NONPIC_SRC), $(eval BUILD_LIBJVM_$(notdir $s)_CXXFLAGS := -fno-PIC)) |
83 $(foreach s, $(NONPIC_SRC), $(eval BUILD_LIBJVM_$(notdir $s)_CXXFLAGS := -fno-PIC)) |
84 endif |
84 endif |
85 |
85 |
86 else ifeq ($(OPENJDK_TARGET_OS), solaris) |
86 else ifeq ($(call isTargetOs, solaris), true) |
87 ifneq ($(DEBUG_LEVEL), slowdebug) |
87 ifneq ($(DEBUG_LEVEL), slowdebug) |
88 # dev studio 12.6 workaround |
88 # dev studio 12.6 workaround |
89 BUILD_LIBJVM_arguments.cpp_OPTIMIZATION := LOW |
89 BUILD_LIBJVM_arguments.cpp_OPTIMIZATION := LOW |
90 # Workaround for a bug in dtrace. If ciEnv::post_compiled_method_load_event() |
90 # Workaround for a bug in dtrace. If ciEnv::post_compiled_method_load_event() |
91 # is inlined, the resulting dtrace object file needs a reference to this |
91 # is inlined, the resulting dtrace object file needs a reference to this |
95 -xinline=no%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_ |
95 -xinline=no%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_ |
96 # dtrace cannot handle tail call optimization (6672627, 6693876) |
96 # dtrace cannot handle tail call optimization (6672627, 6693876) |
97 BUILD_LIBJVM_jni.cpp_CXXFLAGS := -Qoption ube -O~yz |
97 BUILD_LIBJVM_jni.cpp_CXXFLAGS := -Qoption ube -O~yz |
98 BUILD_LIBJVM_stubGenerator_$(HOTSPOT_TARGET_CPU).cpp_CXXFLAGS := -xspace |
98 BUILD_LIBJVM_stubGenerator_$(HOTSPOT_TARGET_CPU).cpp_CXXFLAGS := -xspace |
99 |
99 |
100 ifeq ($(OPENJDK_TARGET_CPU), x86_64) |
100 ifeq ($(call isTargetCpu, x86_64), true) |
101 # Temporary until SS10 C++ compiler is fixed |
101 # Temporary until SS10 C++ compiler is fixed |
102 BUILD_LIBJVM_generateOptoStub.cpp_CXXFLAGS := -xO2 |
102 BUILD_LIBJVM_generateOptoStub.cpp_CXXFLAGS := -xO2 |
103 # Temporary util SS12u1 C++ compiler is fixed |
103 # Temporary util SS12u1 C++ compiler is fixed |
104 BUILD_LIBJVM_c1_LinearScan.cpp_CXXFLAGS := -xO2 |
104 BUILD_LIBJVM_c1_LinearScan.cpp_CXXFLAGS := -xO2 |
105 endif |
105 endif |
116 |
116 |
117 # Frame size > 100k if we allow inlining via -g0! |
117 # Frame size > 100k if we allow inlining via -g0! |
118 BUILD_LIBJVM_bytecodeInterpreter.cpp_CXXFLAGS := +d |
118 BUILD_LIBJVM_bytecodeInterpreter.cpp_CXXFLAGS := +d |
119 BUILD_LIBJVM_bytecodeInterpreterWithChecks.cpp_CXXFLAGS := +d |
119 BUILD_LIBJVM_bytecodeInterpreterWithChecks.cpp_CXXFLAGS := +d |
120 |
120 |
121 ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) |
121 ifeq ($(call isTargetCpuArch, x86), true) |
122 # ube explodes on x86 |
122 # ube explodes on x86 |
123 BUILD_LIBJVM_bytecodeInterpreter.cpp_CXXFLAGS += -xO1 |
123 BUILD_LIBJVM_bytecodeInterpreter.cpp_CXXFLAGS += -xO1 |
124 BUILD_LIBJVM_bytecodeInterpreterWithChecks.cpp_CXXFLAGS += -xO1 |
124 BUILD_LIBJVM_bytecodeInterpreterWithChecks.cpp_CXXFLAGS += -xO1 |
125 endif |
125 endif |
126 |
126 |
127 endif |
127 endif |
128 |
128 |
129 # Workaround for jvmciCompilerToVM.cpp long compilation time |
129 # Workaround for jvmciCompilerToVM.cpp long compilation time |
130 BUILD_LIBJVM_jvmciCompilerToVMInit.cpp_OPTIMIZATION := NONE |
130 BUILD_LIBJVM_jvmciCompilerToVMInit.cpp_OPTIMIZATION := NONE |
131 |
131 |
132 else ifeq ($(OPENJDK_TARGET_OS), macosx) |
132 else ifeq ($(call isTargetOs, macosx), true) |
133 # The copied fdlibm routines in these files must not be optimized |
133 # The copied fdlibm routines in these files must not be optimized |
134 BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
134 BUILD_LIBJVM_sharedRuntimeTrig.cpp_CXXFLAGS := $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
135 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
135 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(FDLIBM_CFLAGS) $(LIBJVM_FDLIBM_COPY_OPT_FLAG) |
136 ifeq ($(TOOLCHAIN_TYPE), clang) |
136 ifeq ($(TOOLCHAIN_TYPE), clang) |
137 # NOTE: The old build tested clang version to make sure this workaround |
137 # NOTE: The old build tested clang version to make sure this workaround |
158 unsafe.cpp \ |
158 unsafe.cpp \ |
159 jvmciCompilerToVM.cpp \ |
159 jvmciCompilerToVM.cpp \ |
160 # |
160 # |
161 endif |
161 endif |
162 |
162 |
163 else ifeq ($(OPENJDK_TARGET_OS), aix) |
163 else ifeq ($(call isTargetOs, aix), true) |
164 BUILD_LIBJVM_synchronizer.cpp_CXXFLAGS := -qnoinline |
164 BUILD_LIBJVM_synchronizer.cpp_CXXFLAGS := -qnoinline |
165 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE) |
165 BUILD_LIBJVM_sharedRuntimeTrans.cpp_CXXFLAGS := $(CXX_O_FLAG_NONE) |
166 # Disable aggressive optimizations for functions in sharedRuntimeTrig.cpp |
166 # Disable aggressive optimizations for functions in sharedRuntimeTrig.cpp |
167 # and sharedRuntimeTrans.cpp on ppc64. |
167 # and sharedRuntimeTrans.cpp on ppc64. |
168 # -qstrict turns off the following optimizations: |
168 # -qstrict turns off the following optimizations: |
183 endif |
183 endif |
184 |
184 |
185 # Disable ELF decoder on AIX (AIX uses XCOFF). |
185 # Disable ELF decoder on AIX (AIX uses XCOFF). |
186 JVM_EXCLUDE_PATTERNS += elf |
186 JVM_EXCLUDE_PATTERNS += elf |
187 |
187 |
188 else ifeq ($(OPENJDK_TARGET_OS), windows) |
188 else ifeq ($(call isTargetOs, windows), true) |
189 JVM_PRECOMPILED_HEADER_EXCLUDE := \ |
189 JVM_PRECOMPILED_HEADER_EXCLUDE := \ |
190 bytecodeInterpreter.cpp \ |
190 bytecodeInterpreter.cpp \ |
191 bytecodeInterpreterWithChecks.cpp \ |
191 bytecodeInterpreterWithChecks.cpp \ |
192 opcodes.cpp \ |
192 opcodes.cpp \ |
193 os_windows.cpp \ |
193 os_windows.cpp \ |