2344 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
2348 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
2345 as_fn_set_status $ac_retval |
2349 as_fn_set_status $ac_retval |
2346 |
2350 |
2347 } # ac_fn_objc_try_compile |
2351 } # ac_fn_objc_try_compile |
2348 |
2352 |
|
2353 # ac_fn_c_try_link LINENO |
|
2354 # ----------------------- |
|
2355 # Try to link conftest.$ac_ext, and return whether this succeeded. |
|
2356 ac_fn_c_try_link () |
|
2357 { |
|
2358 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
|
2359 rm -f conftest.$ac_objext conftest$ac_exeext |
|
2360 if { { ac_try="$ac_link" |
|
2361 case "(($ac_try" in |
|
2362 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; |
|
2363 *) ac_try_echo=$ac_try;; |
|
2364 esac |
|
2365 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" |
|
2366 $as_echo "$ac_try_echo"; } >&5 |
|
2367 (eval "$ac_link") 2>conftest.err |
|
2368 ac_status=$? |
|
2369 if test -s conftest.err; then |
|
2370 grep -v '^ *+' conftest.err >conftest.er1 |
|
2371 cat conftest.er1 >&5 |
|
2372 mv -f conftest.er1 conftest.err |
|
2373 fi |
|
2374 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
|
2375 test $ac_status = 0; } && { |
|
2376 test -z "$ac_c_werror_flag" || |
|
2377 test ! -s conftest.err |
|
2378 } && test -s conftest$ac_exeext && { |
|
2379 test "$cross_compiling" = yes || |
|
2380 test -x conftest$ac_exeext |
|
2381 }; then : |
|
2382 ac_retval=0 |
|
2383 else |
|
2384 $as_echo "$as_me: failed program was:" >&5 |
|
2385 sed 's/^/| /' conftest.$ac_ext >&5 |
|
2386 |
|
2387 ac_retval=1 |
|
2388 fi |
|
2389 # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information |
|
2390 # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would |
|
2391 # interfere with the next link command; also delete a directory that is |
|
2392 # left behind by Apple's compiler. We do this before executing the actions. |
|
2393 rm -rf conftest.dSYM conftest_ipa8_conftest.oo |
|
2394 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
|
2395 as_fn_set_status $ac_retval |
|
2396 |
|
2397 } # ac_fn_c_try_link |
|
2398 |
2349 # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES |
2399 # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES |
2350 # --------------------------------------------------------- |
2400 # --------------------------------------------------------- |
2351 # Tests whether HEADER exists, giving a warning if it cannot be compiled using |
2401 # Tests whether HEADER exists, giving a warning if it cannot be compiled using |
2352 # the include files in INCLUDES and setting the cache variable VAR |
2402 # the include files in INCLUDES and setting the cache variable VAR |
2353 # accordingly. |
2403 # accordingly. |
40287 |
40344 |
40288 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
40345 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
40289 # If this is a --hash-style=gnu system, use --hash-style=both, why? |
40346 # If this is a --hash-style=gnu system, use --hash-style=both, why? |
40290 HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'` |
40347 HAS_GNU_HASH=`$CC -dumpspecs 2>/dev/null | $GREP 'hash-style=gnu'` |
40291 # This is later checked when setting flags. |
40348 # This is later checked when setting flags. |
|
40349 |
|
40350 # "-Og" suppported for GCC 4.8 and later |
|
40351 CFLAG_OPTIMIZE_DEBUG_FLAG="-Og" |
|
40352 |
|
40353 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$CFLAG_OPTIMIZE_DEBUG_FLAG\"" >&5 |
|
40354 $as_echo_n "checking if compiler supports \"$CFLAG_OPTIMIZE_DEBUG_FLAG\"... " >&6; } |
|
40355 supports=yes |
|
40356 |
|
40357 saved_cflags="$CFLAGS" |
|
40358 CFLAGS="$CFLAGS $CFLAG_OPTIMIZE_DEBUG_FLAG" |
|
40359 ac_ext=c |
|
40360 ac_cpp='$CPP $CPPFLAGS' |
|
40361 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40362 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40363 ac_compiler_gnu=$ac_cv_c_compiler_gnu |
|
40364 |
|
40365 cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
|
40366 /* end confdefs.h. */ |
|
40367 int i; |
|
40368 _ACEOF |
|
40369 if ac_fn_c_try_compile "$LINENO"; then : |
|
40370 |
|
40371 else |
|
40372 supports=no |
|
40373 fi |
|
40374 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
|
40375 ac_ext=cpp |
|
40376 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40377 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40378 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40379 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40380 |
|
40381 CFLAGS="$saved_cflags" |
|
40382 |
|
40383 saved_cxxflags="$CXXFLAGS" |
|
40384 CXXFLAGS="$CXXFLAG $CFLAG_OPTIMIZE_DEBUG_FLAG" |
|
40385 ac_ext=cpp |
|
40386 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40387 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40388 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40389 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40390 |
|
40391 cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
|
40392 /* end confdefs.h. */ |
|
40393 int i; |
|
40394 _ACEOF |
|
40395 if ac_fn_cxx_try_compile "$LINENO"; then : |
|
40396 |
|
40397 else |
|
40398 supports=no |
|
40399 fi |
|
40400 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
|
40401 ac_ext=cpp |
|
40402 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40403 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40404 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40405 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40406 |
|
40407 CXXFLAGS="$saved_cxxflags" |
|
40408 |
|
40409 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 |
|
40410 $as_echo "$supports" >&6; } |
|
40411 if test "x$supports" = "xyes" ; then |
|
40412 HAS_CFLAG_OPTIMIZE_DEBUG=true |
|
40413 else |
|
40414 HAS_CFLAG_OPTIMIZE_DEBUG=false |
|
40415 fi |
|
40416 |
|
40417 |
|
40418 # "-fsanitize=undefined" supported for GCC 4.9 and later |
|
40419 CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG="-fsanitize=undefined -fsanitize-recover" |
|
40420 |
|
40421 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG\"" >&5 |
|
40422 $as_echo_n "checking if compiler supports \"$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG\"... " >&6; } |
|
40423 supports=yes |
|
40424 |
|
40425 saved_cflags="$CFLAGS" |
|
40426 CFLAGS="$CFLAGS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG" |
|
40427 ac_ext=c |
|
40428 ac_cpp='$CPP $CPPFLAGS' |
|
40429 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40430 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40431 ac_compiler_gnu=$ac_cv_c_compiler_gnu |
|
40432 |
|
40433 cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
|
40434 /* end confdefs.h. */ |
|
40435 int i; |
|
40436 _ACEOF |
|
40437 if ac_fn_c_try_compile "$LINENO"; then : |
|
40438 |
|
40439 else |
|
40440 supports=no |
|
40441 fi |
|
40442 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
|
40443 ac_ext=cpp |
|
40444 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40445 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40446 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40447 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40448 |
|
40449 CFLAGS="$saved_cflags" |
|
40450 |
|
40451 saved_cxxflags="$CXXFLAGS" |
|
40452 CXXFLAGS="$CXXFLAG $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG" |
|
40453 ac_ext=cpp |
|
40454 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40455 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40456 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40457 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40458 |
|
40459 cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
|
40460 /* end confdefs.h. */ |
|
40461 int i; |
|
40462 _ACEOF |
|
40463 if ac_fn_cxx_try_compile "$LINENO"; then : |
|
40464 |
|
40465 else |
|
40466 supports=no |
|
40467 fi |
|
40468 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
|
40469 ac_ext=cpp |
|
40470 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40471 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40472 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40473 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40474 |
|
40475 CXXFLAGS="$saved_cxxflags" |
|
40476 |
|
40477 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 |
|
40478 $as_echo "$supports" >&6; } |
|
40479 if test "x$supports" = "xyes" ; then |
|
40480 HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=true |
|
40481 else |
|
40482 HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=false |
|
40483 fi |
|
40484 |
|
40485 |
|
40486 # "-z relro" supported in GNU binutils 2.17 and later |
|
40487 LINKER_RELRO_FLAG="-Xlinker -z -Xlinker relro" |
|
40488 |
|
40489 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if linker supports \"$LINKER_RELRO_FLAG\"" >&5 |
|
40490 $as_echo_n "checking if linker supports \"$LINKER_RELRO_FLAG\"... " >&6; } |
|
40491 supports=yes |
|
40492 |
|
40493 saved_ldflags="$LDFLAGS" |
|
40494 LDFLAGS="$LDFLAGS $LINKER_RELRO_FLAG" |
|
40495 ac_ext=c |
|
40496 ac_cpp='$CPP $CPPFLAGS' |
|
40497 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40498 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40499 ac_compiler_gnu=$ac_cv_c_compiler_gnu |
|
40500 |
|
40501 cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
|
40502 /* end confdefs.h. */ |
|
40503 |
|
40504 int |
|
40505 main () |
|
40506 { |
|
40507 |
|
40508 ; |
|
40509 return 0; |
|
40510 } |
|
40511 _ACEOF |
|
40512 if ac_fn_c_try_link "$LINENO"; then : |
|
40513 |
|
40514 else |
|
40515 supports=no |
|
40516 fi |
|
40517 rm -f core conftest.err conftest.$ac_objext \ |
|
40518 conftest$ac_exeext conftest.$ac_ext |
|
40519 ac_ext=cpp |
|
40520 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40521 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40522 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40523 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40524 |
|
40525 LDFLAGS="$saved_ldflags" |
|
40526 |
|
40527 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 |
|
40528 $as_echo "$supports" >&6; } |
|
40529 if test "x$supports" = "xyes" ; then |
|
40530 HAS_LINKER_RELRO=true |
|
40531 else |
|
40532 HAS_LINKER_RELRO=false |
|
40533 fi |
|
40534 |
|
40535 |
|
40536 # "-z now" supported in GNU binutils 2.11 and later |
|
40537 LINKER_NOW_FLAG="-Xlinker -z -Xlinker now" |
|
40538 |
|
40539 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if linker supports \"$LINKER_NOW_FLAG\"" >&5 |
|
40540 $as_echo_n "checking if linker supports \"$LINKER_NOW_FLAG\"... " >&6; } |
|
40541 supports=yes |
|
40542 |
|
40543 saved_ldflags="$LDFLAGS" |
|
40544 LDFLAGS="$LDFLAGS $LINKER_NOW_FLAG" |
|
40545 ac_ext=c |
|
40546 ac_cpp='$CPP $CPPFLAGS' |
|
40547 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40548 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40549 ac_compiler_gnu=$ac_cv_c_compiler_gnu |
|
40550 |
|
40551 cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
|
40552 /* end confdefs.h. */ |
|
40553 |
|
40554 int |
|
40555 main () |
|
40556 { |
|
40557 |
|
40558 ; |
|
40559 return 0; |
|
40560 } |
|
40561 _ACEOF |
|
40562 if ac_fn_c_try_link "$LINENO"; then : |
|
40563 |
|
40564 else |
|
40565 supports=no |
|
40566 fi |
|
40567 rm -f core conftest.err conftest.$ac_objext \ |
|
40568 conftest$ac_exeext conftest.$ac_ext |
|
40569 ac_ext=cpp |
|
40570 ac_cpp='$CXXCPP $CPPFLAGS' |
|
40571 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' |
|
40572 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' |
|
40573 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
|
40574 |
|
40575 LDFLAGS="$saved_ldflags" |
|
40576 |
|
40577 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5 |
|
40578 $as_echo "$supports" >&6; } |
|
40579 if test "x$supports" = "xyes" ; then |
|
40580 HAS_LINKER_NOW=true |
|
40581 else |
|
40582 HAS_LINKER_NOW=false |
|
40583 fi |
|
40584 |
40292 fi |
40585 fi |
40293 |
40586 |
40294 # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed |
40587 # Check for broken SuSE 'ld' for which 'Only anonymous version tag is allowed |
40295 # in executable.' |
40588 # in executable.' |
40296 USING_BROKEN_SUSE_LD=no |
40589 USING_BROKEN_SUSE_LD=no |
40297 if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then |
40590 if test "x$OPENJDK_TARGET_OS" = xlinux && test "x$TOOLCHAIN_TYPE" = xgcc; then |
40298 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken SuSE 'ld' which only understands anonymous version tags in executables" >&5 |
40591 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken SuSE 'ld' which only understands anonymous version tags in executables" >&5 |
40299 $as_echo_n "checking for broken SuSE 'ld' which only understands anonymous version tags in executables... " >&6; } |
40592 $as_echo_n "checking for broken SuSE 'ld' which only understands anonymous version tags in executables... " >&6; } |
40300 echo "SUNWprivate_1.1 { local: *; };" > version-script.map |
40593 $ECHO "SUNWprivate_1.1 { local: *; };" > version-script.map |
40301 echo "int main() { }" > main.c |
40594 $ECHO "int main() { }" > main.c |
40302 if $CXX -Xlinker -version-script=version-script.map main.c 2>&5 >&5; then |
40595 if $CXX -Xlinker -version-script=version-script.map main.c 2>&5 >&5; then |
40303 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
40596 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
40304 $as_echo "no" >&6; } |
40597 $as_echo "no" >&6; } |
40305 USING_BROKEN_SUSE_LD=no |
40598 USING_BROKEN_SUSE_LD=no |
40306 else |
40599 else |
41497 elif test "x$TOOLCHAIN_TYPE" = xclang; then |
41790 elif test "x$TOOLCHAIN_TYPE" = xclang; then |
41498 CFLAGS_DEBUG_SYMBOLS="-g" |
41791 CFLAGS_DEBUG_SYMBOLS="-g" |
41499 CXXFLAGS_DEBUG_SYMBOLS="-g" |
41792 CXXFLAGS_DEBUG_SYMBOLS="-g" |
41500 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
41793 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
41501 CFLAGS_DEBUG_SYMBOLS="-g -xs" |
41794 CFLAGS_DEBUG_SYMBOLS="-g -xs" |
|
41795 # FIXME: likely a bug, this disables debug symbols rather than enables them |
41502 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
41796 CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" |
41503 elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
41797 elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
41504 CFLAGS_DEBUG_SYMBOLS="-g" |
41798 CFLAGS_DEBUG_SYMBOLS="-g" |
41505 CXXFLAGS_DEBUG_SYMBOLS="-g" |
41799 CXXFLAGS_DEBUG_SYMBOLS="-g" |
|
41800 fi |
|
41801 |
|
41802 |
|
41803 |
|
41804 # bounds, memory and behavior checking options |
|
41805 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
|
41806 case $DEBUG_LEVEL in |
|
41807 release ) |
|
41808 # no adjustment |
|
41809 ;; |
|
41810 fastdebug ) |
|
41811 # Add compile time bounds checks. |
|
41812 CFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" |
|
41813 CXXFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" |
|
41814 ;; |
|
41815 slowdebug ) |
|
41816 # Add runtime bounds checks and symbol info. |
|
41817 CFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all --param ssp-buffer-size=1" |
|
41818 CXXFLAGS_DEBUG_OPTIONS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all --param ssp-buffer-size=1" |
|
41819 if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then |
|
41820 CFLAGS_DEBUG_OPTIONS="$CFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG" |
|
41821 CXXFLAGS_DEBUG_OPTIONS="$CXXFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG" |
|
41822 fi |
|
41823 ;; |
|
41824 esac |
41506 fi |
41825 fi |
41507 |
41826 |
41508 |
41827 |
41509 |
41828 |
41510 # Optimization levels |
41829 # Optimization levels |
41514 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then |
41833 if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then |
41515 # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global? |
41834 # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global? |
41516 C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr" |
41835 C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr" |
41517 C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr" |
41836 C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr" |
41518 C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr" |
41837 C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr" |
|
41838 C_O_FLAG_DEBUG="-xregs=no%frameptr" |
41519 C_O_FLAG_NONE="-xregs=no%frameptr" |
41839 C_O_FLAG_NONE="-xregs=no%frameptr" |
41520 CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr" |
41840 CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr" |
41521 CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr" |
41841 CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr" |
41522 CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr" |
41842 CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr" |
|
41843 CXX_O_FLAG_DEBUG="-xregs=no%frameptr" |
41523 CXX_O_FLAG_NONE="-xregs=no%frameptr" |
41844 CXX_O_FLAG_NONE="-xregs=no%frameptr" |
41524 if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then |
41845 if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then |
41525 C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium" |
41846 C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium" |
41526 CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium" |
41847 CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium" |
41527 fi |
41848 fi |
41528 elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then |
41849 elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then |
41529 C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra" |
41850 C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra" |
41530 C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
41851 C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
41531 C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
41852 C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0" |
|
41853 C_O_FLAG_DEBUG="" |
41532 C_O_FLAG_NONE="" |
41854 C_O_FLAG_NONE="" |
41533 CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra" |
41855 CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra" |
41534 CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" |
41856 CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" |
41535 CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" |
41857 CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" |
|
41858 C_O_FLAG_DEBUG="" |
41536 CXX_O_FLAG_NONE="" |
41859 CXX_O_FLAG_NONE="" |
41537 fi |
41860 fi |
41538 else |
41861 else |
41539 # The remaining toolchains share opt flags between CC and CXX; |
41862 # The remaining toolchains share opt flags between CC and CXX; |
41540 # setup for C and duplicate afterwards. |
41863 # setup for C and duplicate afterwards. |
41543 # On MacOSX we optimize for size, something |
41866 # On MacOSX we optimize for size, something |
41544 # we should do for all platforms? |
41867 # we should do for all platforms? |
41545 C_O_FLAG_HIGHEST="-Os" |
41868 C_O_FLAG_HIGHEST="-Os" |
41546 C_O_FLAG_HI="-Os" |
41869 C_O_FLAG_HI="-Os" |
41547 C_O_FLAG_NORM="-Os" |
41870 C_O_FLAG_NORM="-Os" |
41548 C_O_FLAG_NONE="" |
|
41549 else |
41871 else |
41550 C_O_FLAG_HIGHEST="-O3" |
41872 C_O_FLAG_HIGHEST="-O3" |
41551 C_O_FLAG_HI="-O3" |
41873 C_O_FLAG_HI="-O3" |
41552 C_O_FLAG_NORM="-O2" |
41874 C_O_FLAG_NORM="-O2" |
41553 C_O_FLAG_NONE="-O0" |
|
41554 fi |
41875 fi |
|
41876 if test "x$HAS_CFLAG_OPTIMIZE_DEBUG" = "xtrue"; then |
|
41877 C_O_FLAG_DEBUG="$CFLAG_OPTIMIZE_DEBUG_FLAG" |
|
41878 else |
|
41879 C_O_FLAG_DEBUG="-O0" |
|
41880 fi |
|
41881 C_O_FLAG_NONE="-O0" |
41555 elif test "x$TOOLCHAIN_TYPE" = xclang; then |
41882 elif test "x$TOOLCHAIN_TYPE" = xclang; then |
41556 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
41883 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
41557 # On MacOSX we optimize for size, something |
41884 # On MacOSX we optimize for size, something |
41558 # we should do for all platforms? |
41885 # we should do for all platforms? |
41559 C_O_FLAG_HIGHEST="-Os" |
41886 C_O_FLAG_HIGHEST="-Os" |
41560 C_O_FLAG_HI="-Os" |
41887 C_O_FLAG_HI="-Os" |
41561 C_O_FLAG_NORM="-Os" |
41888 C_O_FLAG_NORM="-Os" |
41562 C_O_FLAG_NONE="" |
|
41563 else |
41889 else |
41564 C_O_FLAG_HIGHEST="-O3" |
41890 C_O_FLAG_HIGHEST="-O3" |
41565 C_O_FLAG_HI="-O3" |
41891 C_O_FLAG_HI="-O3" |
41566 C_O_FLAG_NORM="-O2" |
41892 C_O_FLAG_NORM="-O2" |
41567 C_O_FLAG_NONE="-O0" |
|
41568 fi |
41893 fi |
|
41894 C_O_FLAG_DEBUG="-O0" |
|
41895 C_O_FLAG_NONE="-O0" |
41569 elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
41896 elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
41570 C_O_FLAG_HIGHEST="-O3" |
41897 C_O_FLAG_HIGHEST="-O3" |
41571 C_O_FLAG_HI="-O3 -qstrict" |
41898 C_O_FLAG_HI="-O3 -qstrict" |
41572 C_O_FLAG_NORM="-O2" |
41899 C_O_FLAG_NORM="-O2" |
41573 C_O_FLAG_NONE="" |
41900 C_O_FLAG_DEBUG="-qnoopt" |
|
41901 C_O_FLAG_NONE="-qnoop" |
41574 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
41902 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
41575 C_O_FLAG_HIGHEST="-O2" |
41903 C_O_FLAG_HIGHEST="-O2" |
41576 C_O_FLAG_HI="-O1" |
41904 C_O_FLAG_HI="-O1" |
41577 C_O_FLAG_NORM="-O1" |
41905 C_O_FLAG_NORM="-O1" |
|
41906 C_O_FLAG_DEBUG="-Od" |
41578 C_O_FLAG_NONE="-Od" |
41907 C_O_FLAG_NONE="-Od" |
41579 fi |
41908 fi |
41580 CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST" |
41909 CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST" |
41581 CXX_O_FLAG_HI="$C_O_FLAG_HI" |
41910 CXX_O_FLAG_HI="$C_O_FLAG_HI" |
41582 CXX_O_FLAG_NORM="$C_O_FLAG_NORM" |
41911 CXX_O_FLAG_NORM="$C_O_FLAG_NORM" |
|
41912 CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG" |
41583 CXX_O_FLAG_NONE="$C_O_FLAG_NONE" |
41913 CXX_O_FLAG_NONE="$C_O_FLAG_NONE" |
41584 fi |
41914 fi |
|
41915 |
|
41916 # Adjust optimization flags according to debug level. |
|
41917 case $DEBUG_LEVEL in |
|
41918 release ) |
|
41919 # no adjustment |
|
41920 ;; |
|
41921 fastdebug ) |
|
41922 # Not quite so much optimization |
|
41923 C_O_FLAG_HI="$C_O_FLAG_NORM" |
|
41924 CXX_O_FLAG_HI="$CXX_O_FLAG_NORM" |
|
41925 ;; |
|
41926 slowdebug ) |
|
41927 # Disable optimization |
|
41928 C_O_FLAG_HIGHEST="$C_O_FLAG_DEBUG" |
|
41929 C_O_FLAG_HI="$C_O_FLAG_DEBUG" |
|
41930 C_O_FLAG_NORM="$C_O_FLAG_DEBUG" |
|
41931 CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_DEBUG" |
|
41932 CXX_O_FLAG_HI="$CXX_O_FLAG_DEBUG" |
|
41933 CXX_O_FLAG_NORM="$CXX_O_FLAG_DEBUG" |
|
41934 ;; |
|
41935 esac |
|
41936 |
|
41937 |
41585 |
41938 |
41586 |
41939 |
41587 |
41940 |
41588 |
41941 |
41589 |
41942 |
41674 ppc ) |
42028 ppc ) |
41675 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing |
42029 # on ppc we don't prevent gcc to omit frame pointer but do prevent strict aliasing |
41676 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" |
42030 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" |
41677 ;; |
42031 ;; |
41678 * ) |
42032 * ) |
41679 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" |
42033 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer" |
41680 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" |
42034 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" |
41681 ;; |
42035 ;; |
41682 esac |
42036 esac |
41683 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
42037 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
41684 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" |
42038 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" |
41685 if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then |
42039 if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then |
41686 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" |
42040 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" |
41687 CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" |
42041 CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" |
41688 fi |
42042 fi |
41689 |
42043 |
41690 CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal" |
42044 CFLAGS_JDK="$CFLAGS_JDK -xc99=%none -xCC -errshort=tags -Xa -v -mt -W0,-noglobal" |
41691 CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib" |
42045 CXXFLAGS_JDK="$CXXFLAGS_JDK -errtags=yes +w -mt -features=no%except -DCC_NOEX -norunpath -xnolib" |
41692 elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
42046 elif test "x$TOOLCHAIN_TYPE" = xxlc; then |
41693 CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
42047 CFLAGS_JDK="$CFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
41694 CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
42048 CXXFLAGS_JDK="$CXXFLAGS_JDK -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE -DSTDC" |
41695 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
42049 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
41696 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ |
42050 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \ |
41697 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ |
42051 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \ |
41698 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ |
42052 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \ |
41699 -DWIN32 -DIAL" |
42053 -DWIN32 -DIAL" |
41700 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then |
42054 if test "x$OPENJDK_TARGET_CPU" = xx86_64; then |
41701 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64" |
42055 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64" |
41702 else |
42056 else |
41703 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86" |
42057 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86" |
41704 fi |
42058 fi |
41705 fi |
42059 fi |
41706 |
42060 |
41707 ############################################################################### |
42061 ############################################################################### |
41708 |
42062 |
41709 # Adjust flags according to debug level. |
42063 # Adjust flags according to debug level. |
41710 case $DEBUG_LEVEL in |
42064 case $DEBUG_LEVEL in |
41711 fastdebug ) |
42065 fastdebug | slowdebug ) |
41712 CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS" |
42066 CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS $CFLAGS_DEBUG_OPTIONS" |
41713 CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS" |
42067 CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS $CXXFLAGS_DEBUG_OPTIONS" |
41714 C_O_FLAG_HI="$C_O_FLAG_NORM" |
|
41715 C_O_FLAG_NORM="$C_O_FLAG_NORM" |
|
41716 CXX_O_FLAG_HI="$CXX_O_FLAG_NORM" |
|
41717 CXX_O_FLAG_NORM="$CXX_O_FLAG_NORM" |
|
41718 JAVAC_FLAGS="$JAVAC_FLAGS -g" |
42068 JAVAC_FLAGS="$JAVAC_FLAGS -g" |
41719 ;; |
42069 ;; |
41720 slowdebug ) |
42070 release ) |
41721 CFLAGS_JDK="$CFLAGS_JDK $CFLAGS_DEBUG_SYMBOLS" |
42071 ;; |
41722 CXXFLAGS_JDK="$CXXFLAGS_JDK $CXXFLAGS_DEBUG_SYMBOLS" |
42072 * ) |
41723 C_O_FLAG_HI="$C_O_FLAG_NONE" |
42073 as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5 |
41724 C_O_FLAG_NORM="$C_O_FLAG_NONE" |
|
41725 CXX_O_FLAG_HI="$CXX_O_FLAG_NONE" |
|
41726 CXX_O_FLAG_NORM="$CXX_O_FLAG_NONE" |
|
41727 JAVAC_FLAGS="$JAVAC_FLAGS -g" |
|
41728 ;; |
42074 ;; |
41729 esac |
42075 esac |
41730 |
42076 |
41731 # Setup LP64 |
42077 # Setup LP64 |
41732 CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" |
42078 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64" |
41733 |
42079 |
41734 # Set some common defines. These works for all compilers, but assume |
42080 # Set some common defines. These works for all compilers, but assume |
41735 # -D is universally accepted. |
42081 # -D is universally accepted. |
41736 |
42082 |
41737 # Setup endianness |
42083 # Setup endianness |
41740 # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN |
42086 # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN |
41741 # (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h). |
42087 # (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h). |
41742 # Note: -Dmacro is the same as #define macro 1 |
42088 # Note: -Dmacro is the same as #define macro 1 |
41743 # -Dmacro= is the same as #define macro |
42089 # -Dmacro= is the same as #define macro |
41744 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
42090 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
41745 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" |
42091 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" |
41746 else |
42092 else |
41747 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN" |
42093 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN" |
41748 fi |
42094 fi |
41749 else |
42095 else |
41750 # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they |
42096 # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they |
41751 # are defined in the system? |
42097 # are defined in the system? |
41752 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
42098 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
41753 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN=" |
42099 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN=" |
41754 else |
42100 else |
41755 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" |
42101 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN" |
41756 fi |
42102 fi |
41757 fi |
42103 fi |
41758 |
42104 |
41759 # Setup target OS define. Use OS target name but in upper case. |
42105 # Setup target OS define. Use OS target name but in upper case. |
41760 OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` |
42106 OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` |
41761 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE" |
42107 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE" |
41762 |
42108 |
41763 # Setup target CPU |
42109 # Setup target CPU |
41764 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" |
42110 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY" |
41765 |
42111 |
41766 # Setup debug/release defines |
42112 # Setup debug/release defines |
41767 if test "x$DEBUG_LEVEL" = xrelease; then |
42113 if test "x$DEBUG_LEVEL" = xrelease; then |
41768 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG" |
42114 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG" |
41769 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
42115 if test "x$OPENJDK_TARGET_OS" = xsolaris; then |
41770 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED" |
42116 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED" |
41771 fi |
42117 fi |
41772 else |
42118 else |
41773 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG" |
42119 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG" |
41774 fi |
42120 fi |
41775 |
42121 |
41776 # Setup release name |
42122 # Setup release name |
41777 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" |
42123 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'" |
41778 |
42124 |
41779 |
42125 |
41780 # Set some additional per-OS defines. |
42126 # Set some additional per-OS defines. |
41781 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
42127 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
41782 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" |
42128 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT" |
41783 elif test "x$OPENJDK_TARGET_OS" = xaix; then |
42129 elif test "x$OPENJDK_TARGET_OS" = xaix; then |
41784 # FIXME: PPC64 should not be here. |
42130 # FIXME: PPC64 should not be here. |
41785 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DPPC64" |
42131 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DPPC64" |
41786 elif test "x$OPENJDK_TARGET_OS" = xbsd; then |
42132 elif test "x$OPENJDK_TARGET_OS" = xbsd; then |
41787 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_ALLBSD_SOURCE" |
42133 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_ALLBSD_SOURCE" |
41788 fi |
42134 fi |
41789 |
42135 |
41790 # Additional macosx handling |
42136 # Additional macosx handling |
41791 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
42137 if test "x$OPENJDK_TARGET_OS" = xmacosx; then |
41792 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
42138 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
41801 |
42147 |
41802 |
42148 |
41803 # The macro takes the version with no dots, ex: 1070 |
42149 # The macro takes the version with no dots, ex: 1070 |
41804 # Let the flags variables get resolved in make for easier override on make |
42150 # Let the flags variables get resolved in make for easier override on make |
41805 # command line. |
42151 # command line. |
41806 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" |
42152 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" |
41807 LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" |
42153 LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" |
41808 fi |
42154 fi |
41809 fi |
42155 fi |
41810 |
42156 |
41811 # Setup some hard coded includes |
42157 # Setup some hard coded includes |
41812 CCXXFLAGS_JDK="$CCXXFLAGS_JDK \ |
42158 COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \ |
41813 -I${JDK_OUTPUTDIR}/include \ |
42159 -I${JDK_OUTPUTDIR}/include \ |
41814 -I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \ |
42160 -I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \ |
41815 -I${JDK_TOPDIR}/src/share/javavm/export \ |
42161 -I${JDK_TOPDIR}/src/share/javavm/export \ |
41816 -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_EXPORT_DIR/javavm/export \ |
42162 -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_EXPORT_DIR/javavm/export \ |
41817 -I${JDK_TOPDIR}/src/share/native/common \ |
42163 -I${JDK_TOPDIR}/src/share/native/common \ |
41818 -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common" |
42164 -I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common" |
41819 |
42165 |
41820 # The shared libraries are compiled using the picflag. |
42166 # The shared libraries are compiled using the picflag. |
41821 CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" |
42167 CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA" |
41822 CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " |
42168 CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA " |
41823 |
42169 |
41824 # Executable flags |
42170 # Executable flags |
41825 CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK" |
42171 CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK" |
41826 CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK" |
42172 CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK" |
41827 |
42173 |
41828 |
42174 |
41829 |
42175 |
41830 |
42176 |
41831 |
42177 |
41832 |
42178 |
41833 # Setup LDFLAGS et al. |
42179 # Setup LDFLAGS et al. |
41834 # |
42180 # |
|
42181 |
41835 # Now this is odd. The JDK native libraries have to link against libjvm.so |
42182 # Now this is odd. The JDK native libraries have to link against libjvm.so |
41836 # On 32-bit machines there is normally two distinct libjvm.so:s, client and server. |
42183 # On 32-bit machines there is normally two distinct libjvm.so:s, client and server. |
41837 # Which should we link to? Are we lucky enough that the binary api to the libjvm.so library |
42184 # Which should we link to? Are we lucky enough that the binary api to the libjvm.so library |
41838 # is identical for client and server? Yes. Which is picked at runtime (client or server)? |
42185 # is identical for client and server? Yes. Which is picked at runtime (client or server)? |
41839 # Neither, since the chosen libjvm.so has already been loaded by the launcher, all the following |
42186 # Neither, since the chosen libjvm.so has already been loaded by the launcher, all the following |
41845 if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then |
42192 if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then |
41846 LDFLAGS_JDK="$LDFLAGS_JDK -safeseh" |
42193 LDFLAGS_JDK="$LDFLAGS_JDK -safeseh" |
41847 fi |
42194 fi |
41848 # TODO: make -debug optional "--disable-full-debug-symbols" |
42195 # TODO: make -debug optional "--disable-full-debug-symbols" |
41849 LDFLAGS_JDK="$LDFLAGS_JDK -debug" |
42196 LDFLAGS_JDK="$LDFLAGS_JDK -debug" |
41850 LDFLAGS_JDKLIB="${LDFLAGS_JDK} -dll -libpath:${JDK_OUTPUTDIR}/lib" |
42197 elif test "x$TOOLCHAIN_TYPE" = xgcc; then |
41851 LDFLAGS_JDKLIB_SUFFIX="" |
42198 # If this is a --hash-style=gnu system, use --hash-style=both, why? |
|
42199 # We have previously set HAS_GNU_HASH if this is the case |
|
42200 if test -n "$HAS_GNU_HASH"; then |
|
42201 LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both" |
|
42202 fi |
|
42203 if test "x$OPENJDK_TARGET_OS" = xlinux; then |
|
42204 # And since we now know that the linker is gnu, then add -z defs, to forbid |
|
42205 # undefined symbols in object files. |
|
42206 LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs" |
|
42207 case $DEBUG_LEVEL in |
|
42208 release ) |
|
42209 # tell linker to optimize libraries. |
|
42210 # Should this be supplied to the OSS linker as well? |
|
42211 LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1" |
|
42212 ;; |
|
42213 slowdebug ) |
|
42214 if test "x$HAS_LINKER_NOW" = "xtrue"; then |
|
42215 # do relocations at load |
|
42216 LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_NOW_FLAG" |
|
42217 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_NOW_FLAG" |
|
42218 fi |
|
42219 if test "x$HAS_LINKER_RELRO" = "xtrue"; then |
|
42220 # mark relocations read only |
|
42221 LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_RELRO_FLAG" |
|
42222 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG" |
|
42223 fi |
|
42224 ;; |
|
42225 fastdebug ) |
|
42226 if test "x$HAS_LINKER_RELRO" = "xtrue"; then |
|
42227 # mark relocations read only |
|
42228 LDFLAGS_JDK="$LDFLAGS_JDK $LINKER_RELRO_FLAG" |
|
42229 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK $LINKER_RELRO_FLAG" |
|
42230 fi |
|
42231 ;; |
|
42232 * ) |
|
42233 as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5 |
|
42234 ;; |
|
42235 esac |
|
42236 fi |
|
42237 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
|
42238 LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" |
|
42239 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" |
|
42240 fi |
|
42241 |
|
42242 if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then |
|
42243 # If undefined behaviour detection is enabled then we need to tell linker. |
|
42244 case $DEBUG_LEVEL in |
|
42245 release | fastdebug ) |
|
42246 ;; |
|
42247 slowdebug ) |
|
42248 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" >&5 |
|
42249 $as_echo "$as_me: WARNING: $HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" >&2;} |
|
42250 if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then |
|
42251 # enable undefined behaviour checking |
|
42252 LDFLAGS_JDK="$LDFLAGS_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/ *\(^ \+\)/ -Xlinker \1/g"`" |
|
42253 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/ *\(^ \+\)/ -Xlinker \1/g"`" |
|
42254 fi |
|
42255 ;; |
|
42256 * ) |
|
42257 as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5 |
|
42258 ;; |
|
42259 esac |
|
42260 fi |
|
42261 |
|
42262 # Customize LDFLAGS for executables |
|
42263 |
|
42264 LDFLAGS_JDKEXE="${LDFLAGS_JDK}" |
|
42265 |
|
42266 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
41852 if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then |
42267 if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then |
41853 LDFLAGS_STACK_SIZE=1048576 |
42268 LDFLAGS_STACK_SIZE=1048576 |
41854 else |
42269 else |
41855 LDFLAGS_STACK_SIZE=327680 |
42270 LDFLAGS_STACK_SIZE=327680 |
41856 fi |
42271 fi |
41857 LDFLAGS_JDKEXE="${LDFLAGS_JDK} /STACK:$LDFLAGS_STACK_SIZE" |
42272 LDFLAGS_JDKEXE="${LDFLAGS_JDKEXE} /STACK:$LDFLAGS_STACK_SIZE" |
|
42273 elif test "x$OPENJDK_TARGET_OS" = xlinux; then |
|
42274 LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE -Xlinker --allow-shlib-undefined" |
|
42275 fi |
|
42276 |
|
42277 # Customize LDFLAGS for libs |
|
42278 LDFLAGS_JDKLIB="${LDFLAGS_JDK}" |
|
42279 |
|
42280 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then |
|
42281 LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} -dll -libpath:${JDK_OUTPUTDIR}/lib" |
|
42282 LDFLAGS_JDKLIB_SUFFIX="" |
41858 else |
42283 else |
41859 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
42284 LDFLAGS_JDKLIB="${LDFLAGS_JDKLIB} ${SHARED_LIBRARY_FLAGS} \ |
41860 # If this is a --hash-style=gnu system, use --hash-style=both, why? |
|
41861 # We have previously set HAS_GNU_HASH if this is the case |
|
41862 if test -n "$HAS_GNU_HASH"; then |
|
41863 LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker --hash-style=both " |
|
41864 fi |
|
41865 if test "x$OPENJDK_TARGET_OS" = xlinux; then |
|
41866 # And since we now know that the linker is gnu, then add -z defs, to forbid |
|
41867 # undefined symbols in object files. |
|
41868 LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -z -Xlinker defs" |
|
41869 if test "x$DEBUG_LEVEL" = "xrelease"; then |
|
41870 # When building release libraries, tell the linker optimize them. |
|
41871 # Should this be supplied to the OSS linker as well? |
|
41872 LDFLAGS_JDK="${LDFLAGS_JDK} -Xlinker -O1" |
|
41873 fi |
|
41874 fi |
|
41875 fi |
|
41876 |
|
41877 if test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
|
41878 LDFLAGS_JDK="$LDFLAGS_JDK -z defs -xildoff -ztext" |
|
41879 LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib" |
|
41880 fi |
|
41881 |
|
41882 LDFLAGS_JDKLIB="${LDFLAGS_JDK} $SHARED_LIBRARY_FLAGS \ |
|
41883 -L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}" |
42285 -L${JDK_OUTPUTDIR}/lib${OPENJDK_TARGET_CPU_LIBDIR}" |
41884 |
42286 |
41885 # On some platforms (mac) the linker warns about non existing -L dirs. |
42287 # On some platforms (mac) the linker warns about non existing -L dirs. |
41886 # Add server first if available. Linking aginst client does not always produce the same results. |
42288 # Add server first if available. Linking aginst client does not always produce the same results. |
41887 # Only add client dir if client is being built. Add minimal (note not minimal1) if only building minimal1. |
42289 # Only add client dir if client is being built. Add minimal (note not minimal1) if only building minimal1. |