131 if test "x$TOOLCHAIN_TYPE" = xgcc; then
132 PICFLAG="-fPIC"
133 C_FLAG_REORDER=''
134 CXX_FLAG_REORDER=''
135
136 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
137 # Linking is different on MacOSX
138 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
139 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
140 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
141 SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
142 SET_SHARED_LIBRARY_MAPFILE=''
143 else
144 # Default works for linux, might work on other platforms as well.
145 SHARED_LIBRARY_FLAGS='-shared'
146 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
147 SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
148 SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
149 SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
150 fi
151 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
152 PICFLAG="-KPIC"
153 C_FLAG_REORDER='-xF'
154 CXX_FLAG_REORDER='-xF'
155 SHARED_LIBRARY_FLAGS="-G"
156 SET_EXECUTABLE_ORIGIN='-R\$$$$ORIGIN[$]1'
157 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
158 SET_SHARED_LIBRARY_NAME=''
159 SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
160 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
161 PICFLAG="-qpic=large"
162 C_FLAG_REORDER=''
163 CXX_FLAG_REORDER=''
164 SHARED_LIBRARY_FLAGS="-qmkshrobj"
165 SET_EXECUTABLE_ORIGIN=""
166 SET_SHARED_LIBRARY_ORIGIN=''
167 SET_SHARED_LIBRARY_NAME=''
168 SET_SHARED_LIBRARY_MAPFILE=''
169 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
170 PICFLAG=""
225 # CXXFLAGS_JDK="${CXXFLAGS_JDK} -xmemalign=4s"
226 #fi
227
228 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
229 [
230
231 ###############################################################################
232 #
233 # Setup the opt flags for different compilers
234 # and different operating systems.
235 #
236
237 # FIXME: this was indirectly the old default, but just inherited.
238 # if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
239 # C_FLAG_DEPS="-MMD -MF"
240 # fi
241
242 # Generate make dependency files
243 if test "x$TOOLCHAIN_TYPE" = xgcc; then
244 C_FLAG_DEPS="-MMD -MF"
245 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
246 C_FLAG_DEPS="-xMMD -xMF"
247 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
248 C_FLAG_DEPS="-qmakedep=gcc -MF"
249 fi
250 CXX_FLAG_DEPS="$C_FLAG_DEPS"
251 AC_SUBST(C_FLAG_DEPS)
252 AC_SUBST(CXX_FLAG_DEPS)
253
254 # Debug symbols
255 if test "x$TOOLCHAIN_TYPE" = xgcc; then
256 if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
257 CFLAGS_DEBUG_SYMBOLS="-g1"
258 CXXFLAGS_DEBUG_SYMBOLS="-g1"
259 else
260 CFLAGS_DEBUG_SYMBOLS="-g"
261 CXXFLAGS_DEBUG_SYMBOLS="-g"
262 fi
263 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
264 CFLAGS_DEBUG_SYMBOLS="-g -xs"
265 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
266 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
267 CFLAGS_DEBUG_SYMBOLS="-g"
268 CXXFLAGS_DEBUG_SYMBOLS="-g"
269 fi
270 AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
271 AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
272
273 # Optimization levels
274 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
275 CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xalias_level=basic -xbuiltin=%all -xdepend -xrestrict -xlibmil"
276
277 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
278 # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global?
279 C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xregs=no%frameptr"
280 C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
281 C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
282 C_O_FLAG_NONE="-xregs=no%frameptr"
285 CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
286 CXX_O_FLAG_NONE="-xregs=no%frameptr"
287 if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
288 C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
289 CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium"
290 fi
291 elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
292 C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
293 C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
294 C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
295 C_O_FLAG_NONE=""
296 CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
297 CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
298 CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
299 CXX_O_FLAG_NONE=""
300 fi
301 else
302 # The remaining toolchains share opt flags between CC and CXX;
303 # setup for C and duplicate afterwards.
304 if test "x$TOOLCHAIN_TYPE" = xgcc; then
305 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
306 # On MacOSX we optimize for size, something
307 # we should do for all platforms?
308 C_O_FLAG_HIGHEST="-Os"
309 C_O_FLAG_HI="-Os"
310 C_O_FLAG_NORM="-Os"
311 C_O_FLAG_NONE=""
312 else
313 C_O_FLAG_HIGHEST="-O3"
314 C_O_FLAG_HI="-O3"
315 C_O_FLAG_NORM="-O2"
316 C_O_FLAG_NONE="-O0"
317 fi
318 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
319 C_O_FLAG_HIGHEST="-O3"
320 C_O_FLAG_HI="-O3 -qstrict"
321 C_O_FLAG_NORM="-O2"
322 C_O_FLAG_NONE=""
323 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
324 C_O_FLAG_HIGHEST="-O2"
|
131 if test "x$TOOLCHAIN_TYPE" = xgcc; then
132 PICFLAG="-fPIC"
133 C_FLAG_REORDER=''
134 CXX_FLAG_REORDER=''
135
136 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
137 # Linking is different on MacOSX
138 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
139 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
140 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
141 SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
142 SET_SHARED_LIBRARY_MAPFILE=''
143 else
144 # Default works for linux, might work on other platforms as well.
145 SHARED_LIBRARY_FLAGS='-shared'
146 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
147 SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
148 SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
149 SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
150 fi
151 elif test "x$TOOLCHAIN_TYPE" = xclang; then
152 PICFLAG=''
153 C_FLAG_REORDER=''
154 CXX_FLAG_REORDER=''
155
156 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
157 # Linking is different on MacOSX
158 SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
159 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
160 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
161 SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'
162 SET_SHARED_LIBRARY_MAPFILE=''
163 else
164 # Default works for linux, might work on other platforms as well.
165 SHARED_LIBRARY_FLAGS='-shared'
166 SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker \$$$$ORIGIN[$]1'
167 SET_SHARED_LIBRARY_ORIGIN="-Xlinker -z -Xlinker origin $SET_EXECUTABLE_ORIGIN"
168 SET_SHARED_LIBRARY_NAME='-Xlinker -soname=[$]1'
169 SET_SHARED_LIBRARY_MAPFILE='-Xlinker -version-script=[$]1'
170 fi
171 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
172 PICFLAG="-KPIC"
173 C_FLAG_REORDER='-xF'
174 CXX_FLAG_REORDER='-xF'
175 SHARED_LIBRARY_FLAGS="-G"
176 SET_EXECUTABLE_ORIGIN='-R\$$$$ORIGIN[$]1'
177 SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
178 SET_SHARED_LIBRARY_NAME=''
179 SET_SHARED_LIBRARY_MAPFILE='-M[$]1'
180 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
181 PICFLAG="-qpic=large"
182 C_FLAG_REORDER=''
183 CXX_FLAG_REORDER=''
184 SHARED_LIBRARY_FLAGS="-qmkshrobj"
185 SET_EXECUTABLE_ORIGIN=""
186 SET_SHARED_LIBRARY_ORIGIN=''
187 SET_SHARED_LIBRARY_NAME=''
188 SET_SHARED_LIBRARY_MAPFILE=''
189 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
190 PICFLAG=""
245 # CXXFLAGS_JDK="${CXXFLAGS_JDK} -xmemalign=4s"
246 #fi
247
248 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
249 [
250
251 ###############################################################################
252 #
253 # Setup the opt flags for different compilers
254 # and different operating systems.
255 #
256
257 # FIXME: this was indirectly the old default, but just inherited.
258 # if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
259 # C_FLAG_DEPS="-MMD -MF"
260 # fi
261
262 # Generate make dependency files
263 if test "x$TOOLCHAIN_TYPE" = xgcc; then
264 C_FLAG_DEPS="-MMD -MF"
265 elif test "x$TOOLCHAIN_TYPE" = xclang; then
266 C_FLAG_DEPS="-MMD -MF"
267 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
268 C_FLAG_DEPS="-xMMD -xMF"
269 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
270 C_FLAG_DEPS="-qmakedep=gcc -MF"
271 fi
272 CXX_FLAG_DEPS="$C_FLAG_DEPS"
273 AC_SUBST(C_FLAG_DEPS)
274 AC_SUBST(CXX_FLAG_DEPS)
275
276 # Debug symbols
277 if test "x$TOOLCHAIN_TYPE" = xgcc; then
278 if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then
279 CFLAGS_DEBUG_SYMBOLS="-g1"
280 CXXFLAGS_DEBUG_SYMBOLS="-g1"
281 else
282 CFLAGS_DEBUG_SYMBOLS="-g"
283 CXXFLAGS_DEBUG_SYMBOLS="-g"
284 fi
285 elif test "x$TOOLCHAIN_TYPE" = xclang; then
286 CFLAGS_DEBUG_SYMBOLS="-g"
287 CXXFLAGS_DEBUG_SYMBOLS="-g"
288 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
289 CFLAGS_DEBUG_SYMBOLS="-g -xs"
290 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs"
291 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
292 CFLAGS_DEBUG_SYMBOLS="-g"
293 CXXFLAGS_DEBUG_SYMBOLS="-g"
294 fi
295 AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
296 AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
297
298 # Optimization levels
299 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
300 CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xalias_level=basic -xbuiltin=%all -xdepend -xrestrict -xlibmil"
301
302 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then
303 # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global?
304 C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xregs=no%frameptr"
305 C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr"
306 C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr"
307 C_O_FLAG_NONE="-xregs=no%frameptr"
310 CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr"
311 CXX_O_FLAG_NONE="-xregs=no%frameptr"
312 if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then
313 C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium"
314 CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium"
315 fi
316 elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then
317 C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
318 C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0"
319 C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0"
320 C_O_FLAG_NONE=""
321 CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra"
322 CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
323 CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0"
324 CXX_O_FLAG_NONE=""
325 fi
326 else
327 # The remaining toolchains share opt flags between CC and CXX;
328 # setup for C and duplicate afterwards.
329 if test "x$TOOLCHAIN_TYPE" = xgcc; then
330 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
331 # On MacOSX we optimize for size, something
332 # we should do for all platforms?
333 C_O_FLAG_HIGHEST="-Os"
334 C_O_FLAG_HI="-Os"
335 C_O_FLAG_NORM="-Os"
336 C_O_FLAG_NONE=""
337 else
338 C_O_FLAG_HIGHEST="-O3"
339 C_O_FLAG_HI="-O3"
340 C_O_FLAG_NORM="-O2"
341 C_O_FLAG_NONE="-O0"
342 fi
343 elif test "x$TOOLCHAIN_TYPE" = xclang; then
344 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
345 # On MacOSX we optimize for size, something
346 # we should do for all platforms?
347 C_O_FLAG_HIGHEST="-Os"
348 C_O_FLAG_HI="-Os"
349 C_O_FLAG_NORM="-Os"
350 C_O_FLAG_NONE=""
351 else
352 C_O_FLAG_HIGHEST="-O3"
353 C_O_FLAG_HI="-O3"
354 C_O_FLAG_NORM="-O2"
355 C_O_FLAG_NONE="-O0"
356 fi
357 elif test "x$TOOLCHAIN_TYPE" = xxlc; then
358 C_O_FLAG_HIGHEST="-O3"
359 C_O_FLAG_HI="-O3 -qstrict"
360 C_O_FLAG_NORM="-O2"
361 C_O_FLAG_NONE=""
362 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
363 C_O_FLAG_HIGHEST="-O2"
|