make/autoconf/flags-cflags.m4
changeset 49200 a19a6228cdb2
parent 49160 cefb7b496d17
child 49439 bf53d82a51e5
child 49663 0ab2411f270d
child 56312 a52bcf4118eb
equal deleted inserted replaced
49199:986249df86ce 49200:a19a6228cdb2
   119   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
   119   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
   120     CFLAGS_DEBUG_SYMBOLS="-Z7 -d2Zi+"
   120     CFLAGS_DEBUG_SYMBOLS="-Z7 -d2Zi+"
   121   fi
   121   fi
   122 
   122 
   123   AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
   123   AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
   124 
       
   125   # FIXME: This was never used in the old build. What to do with it?
       
   126   if test "x$TOOLCHAIN_TYPE" = xgcc; then
       
   127     # "-Og" suppported for GCC 4.8 and later
       
   128     CFLAG_OPTIMIZE_DEBUG_FLAG="-Og"
       
   129     FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CFLAG_OPTIMIZE_DEBUG_FLAG],
       
   130       IF_TRUE: [HAS_CFLAG_OPTIMIZE_DEBUG=true],
       
   131       IF_FALSE: [HAS_CFLAG_OPTIMIZE_DEBUG=false])
       
   132   fi
       
   133 ])
   124 ])
   134 
   125 
   135 AC_DEFUN([FLAGS_SETUP_WARNINGS],
   126 AC_DEFUN([FLAGS_SETUP_WARNINGS],
   136 [
   127 [
   137   AC_ARG_ENABLE([warnings-as-errors], [AS_HELP_STRING([--disable-warnings-as-errors],
   128   AC_ARG_ENABLE([warnings-as-errors], [AS_HELP_STRING([--disable-warnings-as-errors],
   161     solstudio)
   152     solstudio)
   162       DISABLE_WARNING_PREFIX="-erroff="
   153       DISABLE_WARNING_PREFIX="-erroff="
   163       CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
   154       CFLAGS_WARNINGS_ARE_ERRORS="-errtags -errwarn=%all"
   164       ;;
   155       ;;
   165     gcc)
   156     gcc)
   166       # Prior to gcc 4.4, a -Wno-X where X is unknown for that version of gcc will cause an error
   157       DISABLE_WARNING_PREFIX="-Wno-"
   167       FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
       
   168           IF_TRUE: [GCC_CAN_DISABLE_WARNINGS=true],
       
   169           IF_FALSE: [GCC_CAN_DISABLE_WARNINGS=false]
       
   170       )
       
   171       if test "x$GCC_CAN_DISABLE_WARNINGS" = "xtrue"; then
       
   172         DISABLE_WARNING_PREFIX="-Wno-"
       
   173       else
       
   174         DISABLE_WARNING_PREFIX=
       
   175       fi
       
   176       CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
   158       CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
   177       # Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
   159       # Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
   178       # CFLAGS since any target specific flags will likely not work with the
   160       # CFLAGS since any target specific flags will likely not work with the
   179       # build compiler
   161       # build compiler
   180       CC_OLD="$CC"
   162       CC_OLD="$CC"
   181       CXX_OLD="$CXX"
   163       CXX_OLD="$CXX"
   182       CC="$BUILD_CC"
   164       CC="$BUILD_CC"
   183       CXX="$BUILD_CXX"
   165       CXX="$BUILD_CXX"
   184       CFLAGS_OLD="$CFLAGS"
   166       CFLAGS_OLD="$CFLAGS"
   185       CFLAGS=""
   167       CFLAGS=""
   186       FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [-Wno-this-is-a-warning-that-do-not-exist],
   168       BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
   187           IF_TRUE: [BUILD_CC_CAN_DISABLE_WARNINGS=true],
       
   188           IF_FALSE: [BUILD_CC_CAN_DISABLE_WARNINGS=false]
       
   189       )
       
   190       if test "x$BUILD_CC_CAN_DISABLE_WARNINGS" = "xtrue"; then
       
   191         BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
       
   192       else
       
   193         BUILD_CC_DISABLE_WARNING_PREFIX=
       
   194       fi
       
   195       CC="$CC_OLD"
   169       CC="$CC_OLD"
   196       CXX="$CXX_OLD"
   170       CXX="$CXX_OLD"
   197       CFLAGS="$CFLAGS_OLD"
   171       CFLAGS="$CFLAGS_OLD"
   198       ;;
   172       ;;
   199     clang)
   173     clang)
   225       # FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it
   199       # FIXME: By adding this to C(XX)FLAGS_DEBUG_OPTIONS/JVM_CFLAGS_SYMBOLS it
   226       # get's added conditionally on whether we produce debug symbols or not.
   200       # get's added conditionally on whether we produce debug symbols or not.
   227       # This is most likely not really correct.
   201       # This is most likely not really correct.
   228 
   202 
   229       # Add runtime stack smashing and undefined behavior checks.
   203       # Add runtime stack smashing and undefined behavior checks.
   230       # Not all versions of gcc support -fstack-protector
   204       CFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
   231       STACK_PROTECTOR_CFLAG="-fstack-protector-all"
   205       CXXFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
   232       FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$STACK_PROTECTOR_CFLAG -Werror],
   206 
   233           IF_FALSE: [STACK_PROTECTOR_CFLAG=""])
   207       JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS -fstack-protector-all --param ssp-buffer-size=1"
   234 
       
   235       CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
       
   236       CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
       
   237 
       
   238       if test "x$STACK_PROTECTOR_CFLAG" != x; then
       
   239         JVM_CFLAGS_SYMBOLS="$JVM_CFLAGS_SYMBOLS $STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"
       
   240       fi
       
   241       ;;
   208       ;;
   242     esac
   209     esac
   243   fi
   210   fi
   244 ])
   211 ])
   245 
   212 
   787 
   754 
   788   if test "x$TOOLCHAIN_TYPE" = xgcc; then
   755   if test "x$TOOLCHAIN_TYPE" = xgcc; then
   789     TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($1))
   756     TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($1))
   790     $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
   757     $1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
   791 
   758 
   792     TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: [4.8], PREFIX: $2,
   759     $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
   793         IF_AT_LEAST: [
       
   794           # These flags either do not work or give spurious warnings prior to gcc 4.8.
       
   795           $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
       
   796         ]
       
   797     )
       
   798   fi
   760   fi
   799 
   761 
   800   # EXPORT to API
   762   # EXPORT to API
   801   CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
   763   CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
   802       $OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
   764       $OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \