448 # |
448 # |
449 # Now setup the CFLAGS and LDFLAGS for the JDK build. |
449 # Now setup the CFLAGS and LDFLAGS for the JDK build. |
450 # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build. |
450 # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build. |
451 # |
451 # |
452 |
452 |
|
453 FDLIBM_CFLAGS="" |
453 # Setup compiler/platform specific flags to CFLAGS_JDK, |
454 # Setup compiler/platform specific flags to CFLAGS_JDK, |
454 # CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?) |
455 # CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?) |
455 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
456 if test "x$TOOLCHAIN_TYPE" = xgcc; then |
456 # these options are used for both C and C++ compiles |
457 # these options are used for both C and C++ compiles |
457 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ |
458 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ |
472 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" |
473 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" |
473 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" |
474 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing" |
474 ;; |
475 ;; |
475 esac |
476 esac |
476 TOOLCHAIN_CHECK_COMPILER_VERSION(6, FLAGS_SETUP_GCC6_COMPILER_FLAGS) |
477 TOOLCHAIN_CHECK_COMPILER_VERSION(6, FLAGS_SETUP_GCC6_COMPILER_FLAGS) |
|
478 |
|
479 # Check that the compiler supports -ffp-contract=off flag |
|
480 # Set FDLIBM_CFLAGS to -ffp-contract=off if it does. |
|
481 # For GCC < 4.6, on x86, x86_64 and ppc check for |
|
482 # -mno-fused-madd and -fno-strict-aliasing. If they exist, |
|
483 # use them as a substitute for -ffp-contract=off. |
|
484 # |
|
485 # These flags are required for GCC-based builds of |
|
486 # fdlibm with optimization without losing precision. |
|
487 # Notably, -ffp-contract=off needs to be added for GCC >= 4.6, |
|
488 # -mno-fused-madd -fno-strict-aliasing for GCC < 4.6 |
|
489 COMPILER_FP_CONTRACT_OFF_FLAG="-ffp-contract=off" |
|
490 FLAGS_CXX_COMPILER_CHECK_ARGUMENTS([[$]COMPILER_FP_CONTRACT_OFF_FLAG -Werror], |
|
491 [], [COMPILER_FP_CONTRACT_OFF_FLAG=""]) |
|
492 if test "x$COMPILER_FP_CONTRACT_OFF_FLAG" = x; then |
|
493 if test "$OPENJDK_TARGET_CPU_ARCH" = "x86" || |
|
494 test "$OPENJDK_TARGET_CPU_ARCH" = "x86_64" || |
|
495 test "$OPENJDK_TARGET_CPU_ARCH" = "ppc"; then |
|
496 M_NO_FUSED_ADD_FLAG="-mno-fused-madd" |
|
497 FLAGS_CXX_COMPILER_CHECK_ARGUMENTS([[$]M_NO_FUSED_ADD_FLAG -Werror], |
|
498 [], [M_NO_FUSED_ADD_FLAG=""]) |
|
499 NO_STRICT_ALIASING_FLAG="-fno-strict-aliasing" |
|
500 FLAGS_CXX_COMPILER_CHECK_ARGUMENTS([[$]NO_STRICT_ALIASING_FLAG -Werror], |
|
501 [], [NO_STRICT_ALIASING_FLAG=""]) |
|
502 if test "x$M_NO_FUSED_ADD_FLAG" != "x" && test "x$NO_STRICT_ALIASING_FLAG" != "x"; then |
|
503 FDLIBM_CFLAGS="$M_NO_FUSED_ADD_FLAG $NO_STRICT_ALIASING_FLAG" |
|
504 fi |
|
505 fi |
|
506 else |
|
507 FDLIBM_CFLAGS="$COMPILER_FP_CONTRACT_OFF_FLAG" |
|
508 fi |
477 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
509 elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then |
478 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" |
510 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS" |
479 if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then |
511 if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86; then |
480 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" |
512 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB" |
481 CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" |
513 CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE" |
503 if test "x$TOOLCHAIN_VERSION" = "x2010"; then |
535 if test "x$TOOLCHAIN_VERSION" = "x2010"; then |
504 CCXXFLAGS_JDK="$CCXXFLAGS_JDK \ |
536 CCXXFLAGS_JDK="$CCXXFLAGS_JDK \ |
505 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB" |
537 -D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB" |
506 fi |
538 fi |
507 fi |
539 fi |
|
540 AC_SUBST(FDLIBM_CFLAGS) |
508 |
541 |
509 ############################################################################### |
542 ############################################################################### |
510 |
543 |
511 # Adjust flags according to debug level. |
544 # Adjust flags according to debug level. |
512 case $DEBUG_LEVEL in |
545 case $DEBUG_LEVEL in |