Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
-Wformat=2 chokes on the snprintf replacement because the format is passed to real...
[simgrid.git] / acmacro / compiler-flags.m4
index 0c577c2..f6f962a 100644 (file)
@@ -6,11 +6,11 @@ dnl For now, only sets extra flags on GCC
 
 AC_DEFUN([SG_COMPILE_FLAGS],[
   AC_ARG_ENABLE(compile-warnings,
-    AS_HELP_STRING([--enable-compile-warnings], [use compiler warnings (default=no)]),
+    AS_HELP_STRING([--enable-compile-warnings], [use compiler warnings (default=no, unless in maintainer mode)]),
     enable_compile_warnings=$withval,enable_compile_warnings=no)
 
   AC_ARG_ENABLE(compile-optimizations,
-    AS_HELP_STRING([--enable-compile-optimizations], [use compiler optimizations (default=yes, unless if CFLAGS is explicitly set)]),
+    AS_HELP_STRING([--disable-compile-optimizations], [use compiler optimizations (default=yes, unless if CFLAGS is explicitly set)]),
     enable_compile_optimizations=$enableval,enable_compile_optimizations=auto)
 
   if test "x$cflags_set" != "xyes" ; then 
@@ -44,9 +44,11 @@ AC_DEFUN([SG_COMPILE_FLAGS],[
       ## with individual -Wno-xxx flags, unlike -Wall
       if test "x$enable_compile_warnings" = "xyes"; then
         warnCFLAGS=`echo $warnCFLAGS  -Wmissing-prototypes -Wmissing-declarations \
-        -Wshadow -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings \
+        -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings \
        -Wno-unused-variable -Wno-unused-function -Wno-unused-label \
         -Werror \
+      ## -Wformat=2 chokes on the snprintf replacement because the format is passed to real sprintf
+      ## -Wshadow chokes on try{ try{} } constructs
        | sed 's/ +/ /g'`
       fi
     fi
@@ -66,11 +68,16 @@ AC_DEFUN([SG_COMPILE_FLAGS],[
         esac
         optCFLAGS="$optCFLAGS -finline-functions -ffast-math -funroll-loops -fno-strict-aliasing"
       
-        if test "x$target_cpu" = "xpowerpc" ; then
+        GCC_VER=`gcc --version | head -n 1 | sed 's/^[^0-9]*\([^ ]*\).*$/\1/'`
+        GCC_VER_MAJ=`echo $GCC_VER | sed 's/^\(.\).*$/\1/'`
+        if test "x$target_cpu" = "xpowerpc" && test "x$GCC_VER_MAJ" != "x2" ; then
           # avoid gcc bug #12828, which is fixed in 3.4.0, but this version
           # isn't propagated enough to desserve an extra check
+          
+          # Note that the flag didn't exist before gcc 3.0
           optCFLAGS="$optCFLAGS -fno-loop-optimize"
         fi
+        dnl A C_MSG_WARN(GCC_VER_MAJ=$GCC_VER_MAJ)
     fi
     AC_MSG_RESULT($optCFLAGS)
     # Take it only if CFLAGS not explicitly set. Unless the flag was explicitly given