# HG changeset patch # User ihse # Date 1519158605 -3600 # Node ID d421dac1932f5ea5e2d30cb1071c4d92fe3c67c5 # Parent a7585ecb9fc2c7645ae539803900d22503b7d1cc Remove duplication in debug flags. diff -r a7585ecb9fc2 -r d421dac1932f make/autoconf/flags-cflags.m4 --- a/make/autoconf/flags-cflags.m4 Tue Feb 20 20:41:51 2018 +0100 +++ b/make/autoconf/flags-cflags.m4 Tue Feb 20 21:30:05 2018 +0100 @@ -148,24 +148,24 @@ if test "x$TOOLCHAIN_TYPE" = xgcc; then if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then CFLAGS_DEBUG_SYMBOLS="-g1" - CXXFLAGS_DEBUG_SYMBOLS="-g1" else CFLAGS_DEBUG_SYMBOLS="-g" - CXXFLAGS_DEBUG_SYMBOLS="-g" fi elif test "x$TOOLCHAIN_TYPE" = xclang; then CFLAGS_DEBUG_SYMBOLS="-g" - CXXFLAGS_DEBUG_SYMBOLS="-g" elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then CFLAGS_DEBUG_SYMBOLS="-g -xs" # -g0 enables debug symbols without disabling inlining. CXXFLAGS_DEBUG_SYMBOLS="-g0 -xs" elif test "x$TOOLCHAIN_TYPE" = xxlc; then CFLAGS_DEBUG_SYMBOLS="-g" - CXXFLAGS_DEBUG_SYMBOLS="-g" elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then CFLAGS_DEBUG_SYMBOLS="-Zi" - CXXFLAGS_DEBUG_SYMBOLS="-Zi" + fi + + if test "x$CXXFLAGS_DEBUG_SYMBOLS" = x; then + # If we did not specify special flags for C++, use C version + CXXFLAGS_DEBUG_SYMBOLS="$CFLAGS_DEBUG_SYMBOLS" fi AC_SUBST(CFLAGS_DEBUG_SYMBOLS) AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS) @@ -213,121 +213,87 @@ [ # Optimization levels + # Most toolchains share opt flags between CC and CXX; + # setup for C and duplicate afterwards. + if test "x$TOOLCHAIN_TYPE" = xsolstudio; then - CC_HIGHEST="$CC_HIGHEST -fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil" + CC_HIGHEST="-fns -fsimple -fsingle -xbuiltin=%all -xdepend -xrestrict -xlibmil" + C_O_FLAG_HIGHEST_JVM="-xO4" + C_O_FLAG_DEBUG_JVM="" + C_O_FLAG_SIZE="" + C_O_FLAG_DEBUG="" + C_O_FLAG_NONE="" if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86"; then - # FIXME: seems we always set -xregs=no%frameptr; put it elsewhere more global? - C_O_FLAG_HIGHEST_JVM="-xO4" - C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST -xalias_level=basic -xregs=no%frameptr" - C_O_FLAG_HI="-xO4 -Wu,-O4~yz -xregs=no%frameptr" - C_O_FLAG_NORM="-xO2 -Wu,-O2~yz -xregs=no%frameptr" - C_O_FLAG_DEBUG="-xregs=no%frameptr" - C_O_FLAG_DEBUG_JVM="" - C_O_FLAG_NONE="-xregs=no%frameptr" - CXX_O_FLAG_HIGHEST_JVM="-xO4" - CXX_O_FLAG_HIGHEST="-xO4 -Qoption ube -O4~yz $CC_HIGHEST -xregs=no%frameptr" - CXX_O_FLAG_HI="-xO4 -Qoption ube -O4~yz -xregs=no%frameptr" - CXX_O_FLAG_NORM="-xO2 -Qoption ube -O2~yz -xregs=no%frameptr" - CXX_O_FLAG_DEBUG="-xregs=no%frameptr" - CXX_O_FLAG_DEBUG_JVM="" - CXX_O_FLAG_NONE="-xregs=no%frameptr" - if test "x$OPENJDK_TARGET_CPU_BITS" = "x32"; then - C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xchip=pentium" - CXX_O_FLAG_HIGHEST="$CXX_O_FLAG_HIGHEST -xchip=pentium" - fi + C_O_FLAG_HIGHEST="-xO4 -Wu,-O4~yz $CC_HIGHEST" + C_O_FLAG_HI="-xO4 -Wu,-O4~yz" + C_O_FLAG_NORM="-xO2 -Wu,-O2~yz" elif test "x$OPENJDK_TARGET_CPU_ARCH" = "xsparc"; then - C_O_FLAG_HIGHEST_JVM="-xO4" - C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 $CC_HIGHEST -xalias_level=basic -xprefetch=auto,explicit -xchip=ultra" + C_O_FLAG_HIGHEST="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0 -xprefetch=auto,explicit -xchip=ultra $CC_HIGHEST" C_O_FLAG_HI="-xO4 -Wc,-Qrm-s -Wc,-Qiselect-T0" C_O_FLAG_NORM="-xO2 -Wc,-Qrm-s -Wc,-Qiselect-T0" - C_O_FLAG_DEBUG="" + fi + elif test "x$TOOLCHAIN_TYPE" = xgcc; then + C_O_FLAG_HIGHEST_JVM="-O3" + C_O_FLAG_HIGHEST="-O3" + C_O_FLAG_HI="-O3" + C_O_FLAG_NORM="-O2" + C_O_FLAG_SIZE="-Os" + C_O_FLAG_DEBUG="-O0" + C_O_FLAG_DEBUG_JVM="-O0" + C_O_FLAG_NONE="-O0" + elif test "x$TOOLCHAIN_TYPE" = xclang; then + if test "x$OPENJDK_TARGET_OS" = xmacosx; then + # On MacOSX we optimize for size, something + # we should do for all platforms? + C_O_FLAG_HIGHEST_JVM="-Os" + C_O_FLAG_HIGHEST="-Os" + C_O_FLAG_HI="-Os" + C_O_FLAG_NORM="-Os" C_O_FLAG_DEBUG_JVM="" - C_O_FLAG_NONE="" - CXX_O_FLAG_HIGHEST_JVM="-xO4" - CXX_O_FLAG_HIGHEST="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0 $CC_HIGHEST -xprefetch=auto,explicit -xchip=ultra" - CXX_O_FLAG_HI="-xO4 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" - CXX_O_FLAG_NORM="-xO2 -Qoption cg -Qrm-s -Qoption cg -Qiselect-T0" - CXX_O_FLAG_DEBUG="" - CXX_O_FLAG_DEBUG_JVM="" - CXX_O_FLAG_NONE="" + else + C_O_FLAG_HIGHEST_JVM="-O3" + C_O_FLAG_HIGHEST="-O3" + C_O_FLAG_HI="-O3" + C_O_FLAG_NORM="-O2" + C_O_FLAG_DEBUG_JVM="-O0" fi - else - # The remaining toolchains share opt flags between CC and CXX; - # setup for C and duplicate afterwards. - if test "x$TOOLCHAIN_TYPE" = xgcc; then - if test "x$OPENJDK_TARGET_OS" = xmacosx; then - # On MacOSX we optimize for size, something - # we should do for all platforms? - C_O_FLAG_HIGHEST_JVM="-Os" - C_O_FLAG_HIGHEST="-Os" - C_O_FLAG_HI="-Os" - C_O_FLAG_NORM="-Os" - C_O_FLAG_SIZE="-Os" - else - C_O_FLAG_HIGHEST_JVM="-O3" - C_O_FLAG_HIGHEST="-O3" - C_O_FLAG_HI="-O3" - C_O_FLAG_NORM="-O2" - C_O_FLAG_SIZE="-Os" - fi - C_O_FLAG_DEBUG="-O0" - if test "x$OPENJDK_TARGET_OS" = xmacosx; then - C_O_FLAG_DEBUG_JVM="" - elif test "x$OPENJDK_TARGET_OS" = xlinux; then - C_O_FLAG_DEBUG_JVM="-O0" - fi - C_O_FLAG_NONE="-O0" - elif test "x$TOOLCHAIN_TYPE" = xclang; then - if test "x$OPENJDK_TARGET_OS" = xmacosx; then - # On MacOSX we optimize for size, something - # we should do for all platforms? - C_O_FLAG_HIGHEST_JVM="-Os" - C_O_FLAG_HIGHEST="-Os" - C_O_FLAG_HI="-Os" - C_O_FLAG_NORM="-Os" - C_O_FLAG_SIZE="-Os" - else - C_O_FLAG_HIGHEST_JVM="-O3" - C_O_FLAG_HIGHEST="-O3" - C_O_FLAG_HI="-O3" - C_O_FLAG_NORM="-O2" - C_O_FLAG_SIZE="-Os" - fi - C_O_FLAG_DEBUG="-O0" - if test "x$OPENJDK_TARGET_OS" = xmacosx; then - C_O_FLAG_DEBUG_JVM="" - elif test "x$OPENJDK_TARGET_OS" = xlinux; then - C_O_FLAG_DEBUG_JVM="-O0" - fi - C_O_FLAG_NONE="-O0" - elif test "x$TOOLCHAIN_TYPE" = xxlc; then - C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue" - C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue" - C_O_FLAG_HI="-O3 -qinline -qinlglue" - C_O_FLAG_NORM="-O2" - C_O_FLAG_DEBUG="-qnoopt" - # FIXME: Value below not verified. - C_O_FLAG_DEBUG_JVM="" - C_O_FLAG_NONE="-qnoopt" - elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then - C_O_FLAG_HIGHEST_JVM="-O2 -Oy-" - C_O_FLAG_HIGHEST="-O2" - C_O_FLAG_HI="-O1" - C_O_FLAG_NORM="-O1" - C_O_FLAG_DEBUG="-Od" - C_O_FLAG_DEBUG_JVM="" - C_O_FLAG_NONE="-Od" - C_O_FLAG_SIZE="-Os" - fi - CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM" - CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST" - CXX_O_FLAG_HI="$C_O_FLAG_HI" - CXX_O_FLAG_NORM="$C_O_FLAG_NORM" - CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG" - CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM" - CXX_O_FLAG_NONE="$C_O_FLAG_NONE" - CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE" + C_O_FLAG_SIZE="-Os" + C_O_FLAG_DEBUG="-O0" + C_O_FLAG_NONE="-O0" + elif test "x$TOOLCHAIN_TYPE" = xxlc; then + C_O_FLAG_HIGHEST_JVM="-O3 -qhot=level=1 -qinline -qinlglue" + C_O_FLAG_HIGHEST="-O3 -qhot=level=1 -qinline -qinlglue" + C_O_FLAG_HI="-O3 -qinline -qinlglue" + C_O_FLAG_NORM="-O2" + C_O_FLAG_DEBUG="-qnoopt" + # FIXME: Value below not verified. + C_O_FLAG_DEBUG_JVM="" + C_O_FLAG_NONE="-qnoopt" + elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then + C_O_FLAG_HIGHEST_JVM="-O2 -Oy-" + C_O_FLAG_HIGHEST="-O2" + C_O_FLAG_HI="-O1" + C_O_FLAG_NORM="-O1" + C_O_FLAG_DEBUG="-Od" + C_O_FLAG_DEBUG_JVM="" + C_O_FLAG_NONE="-Od" + C_O_FLAG_SIZE="-Os" + fi + + # Now copy to C++ flags + CXX_O_FLAG_HIGHEST_JVM="$C_O_FLAG_HIGHEST_JVM" + CXX_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST" + CXX_O_FLAG_HI="$C_O_FLAG_HI" + CXX_O_FLAG_NORM="$C_O_FLAG_NORM" + CXX_O_FLAG_DEBUG="$C_O_FLAG_DEBUG" + CXX_O_FLAG_DEBUG_JVM="$C_O_FLAG_DEBUG_JVM" + CXX_O_FLAG_NONE="$C_O_FLAG_NONE" + CXX_O_FLAG_SIZE="$C_O_FLAG_SIZE" + + if test "x$TOOLCHAIN_TYPE" = xsolstudio; then + # In solstudio, also add this to C (but not C++) flags... + C_O_FLAG_HIGHEST="$C_O_FLAG_HIGHEST -xalias_level=basic" fi # Adjust optimization flags according to debug level. @@ -359,14 +325,12 @@ AC_SUBST(C_O_FLAG_HIGHEST) AC_SUBST(C_O_FLAG_HI) AC_SUBST(C_O_FLAG_NORM) - AC_SUBST(C_O_FLAG_DEBUG) AC_SUBST(C_O_FLAG_NONE) AC_SUBST(C_O_FLAG_SIZE) AC_SUBST(CXX_O_FLAG_HIGHEST_JVM) AC_SUBST(CXX_O_FLAG_HIGHEST) AC_SUBST(CXX_O_FLAG_HI) AC_SUBST(CXX_O_FLAG_NORM) - AC_SUBST(CXX_O_FLAG_DEBUG) AC_SUBST(CXX_O_FLAG_NONE) AC_SUBST(CXX_O_FLAG_SIZE) ]) diff -r a7585ecb9fc2 -r d421dac1932f make/autoconf/flags.m4 --- a/make/autoconf/flags.m4 Tue Feb 20 20:41:51 2018 +0100 +++ b/make/autoconf/flags.m4 Tue Feb 20 21:30:05 2018 +0100 @@ -764,7 +764,10 @@ fi elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then - if test "x$FLAGS_CPU" = xsparcv9; then + if test "x$FLAGS_CPU" = xx86_64; then + # NOTE: -xregs=no%frameptr is supposed to be default on x64 + $1_CFLAGS_CPU_JDK="-xregs=no%frameptr" + elif test "x$FLAGS_CPU" = xsparcv9; then $1_CFLAGS_CPU_JVM="-xarch=sparc" $1_CFLAGS_CPU_JDK="-xregs=no%appl" fi