X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3c7c1bee392df1564c9fdff7c278429f3c2fbd0f..de06d16ffe51a0f739ffc8d5e8259788c79fd16d:/acmacro/compiler-flags.m4 diff --git a/acmacro/compiler-flags.m4 b/acmacro/compiler-flags.m4 index f6f962adab..b6dd1e9ef0 100644 --- a/acmacro/compiler-flags.m4 +++ b/acmacro/compiler-flags.m4 @@ -7,29 +7,27 @@ 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, unless in maintainer mode)]), - enable_compile_warnings=$withval,enable_compile_warnings=no) + enable_compile_warnings=$enableval,enable_compile_warnings=no) AC_ARG_ENABLE(compile-optimizations, 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 - # if user didn't specify CFLAGS explicitely - # AC PROG CC tests whether -g is accepted. - # Cool, but it also tries to set -O2. I don't want it with gcc - saveCFLAGS="$CFLAGS" - CFLAGS= - case " $saveCFLAGS " in - *-g*) CFLAGS="-g" ;; - esac - case " $saveCFLAGS " in - *-O2*) test "x$CC" = xgcc || CFLAGS="$CFLAGS -O2" ;; + # Cool, but it also tries to set -O2 and -g. + # I don't want it with gcc, but -O3 and -g2, and optimization only when asked by user + case $CC in + *gcc) + if test "$CFLAGS" = "-g -O2" ; then + CFLAGS="-g3" + fi + if test "$CXXFLAGS" = "-g -O2" ; then + CXXFLAGS="-g3" + fi + if test "$GCJFLAGS" = "-g -O2" ; then + CXXFLAGS="-g3" + fi;; esac - - # damn AC PROG CC, why did you set -O?? - CFLAGS="-g" - fi if test "x$enable_compile_warnings" = "xyes" ; then AC_MSG_CHECKING(the warning flags for this compiler) @@ -42,14 +40,16 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ ## -W is not all that useful. And it cannot be controlled ## with individual -Wno-xxx flags, unlike -Wall + + ## -Wformat=2 chokes on the snprintf replacement because the format is passed to real sprintf + ## -Wshadow chokes on try{ try{} } constructs if test "x$enable_compile_warnings" = "xyes"; then warnCFLAGS=`echo $warnCFLAGS -Wmissing-prototypes -Wmissing-declarations \ -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings \ - -Wno-unused-variable -Wno-unused-function -Wno-unused-label \ + -Wno-unused-function -Wno-strict-aliasing \ -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'` + # -Wno-unused-variable -Wno-unused-label fi fi AC_MSG_RESULT($warnCFLAGS) @@ -70,9 +70,10 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ 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 + if test "x$target_cpu" = "xpowerpc" && test "x$GCC_VER_MAJ" == "x3" ; then + # avoid gcc bug #12828, which apeared in 3.x branch and is fixed in 3.4.0 + # but the check would be too complicated to get 3.4. + # Instead, rule out any 3.x compiler. # Note that the flag didn't exist before gcc 3.0 optCFLAGS="$optCFLAGS -fno-loop-optimize" @@ -85,5 +86,12 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ CFLAGS="$optCFLAGS $CFLAGS" fi fi + + if test x$lt_cv_prog_gnu_ld = xyes ; then + LD_DYNAMIC_FLAGS=-Wl,--export-dynamic + else + LD_DYNAMIC_FLAGS= + fi + AC_SUBST(LD_DYNAMIC_FLAGS) ])