From: Tom Lane Date: Wed, 15 Oct 2003 22:23:56 +0000 (+0000) Subject: Cause the default CFLAGS to be -O2 -fno-strict-aliasing when using gcc, X-Git-Tag: REL7_4_BETA5~50 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=37278c063fed8b7e10f8ad5fe7cab7f809df2770;p=postgresql Cause the default CFLAGS to be -O2 -fno-strict-aliasing when using gcc, per recent pghackers discussions. Also ensure that explicitly setting CFLAGS in the configure environment will be honored. --- diff --git a/configure b/configure index f376dc92ef..b8f3e3c35f 100755 --- a/configure +++ b/configure @@ -2389,18 +2389,28 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # . "$srcdir/src/template/$template" || exit -# adjust CFLAGS per template +# The template may have supplied a default setting for CFLAGS. +# Override this if CFLAGS was set in the original environment. if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value -fi -if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then - CFLAGS="$CFLAGS -g" else - # configure sets CFLAGS to -O2 for gcc, so this is only for non-gcc - if test x"$CFLAGS" = x""; then - CFLAGS="-O" + # autoconf already set the default CFLAGS for gcc to be -O2, but we + # need to specify -fno-strict-aliasing too in case it's gcc 3.3 or later. + if test "$GCC" = yes; then + CFLAGS="$CFLAGS -fno-strict-aliasing" fi fi +# supply -g if --enable-debug +if test "$enable_debug" = yes -a "$ac_cv_prog_cc_g" = yes; then + CFLAGS="$CFLAGS -g" +fi +# default to -O rather than empty CFLAGS; this path will not be taken for +# gcc (since autoconf supplies -O2), nor if --enable-debug (because -O -g +# doesn't work on most non-gcc compilers), nor if the template provided +# some CFLAGS. +if test "$ac_env_CFLAGS_set" != set -a x"$CFLAGS" = x""; then + CFLAGS="-O" +fi { echo "$as_me:$LINENO: using CFLAGS=$CFLAGS" >&5 echo "$as_me: using CFLAGS=$CFLAGS" >&6;} @@ -2457,7 +2467,7 @@ echo "$as_me: error: cannot proceed" >&2;} fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -# Defend against gcc -ffastmath +# Defend against gcc -ffast-math if test "$GCC" = yes; then cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" diff --git a/configure.in b/configure.in index 5a6d855826..9de3463157 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Header: /cvsroot/pgsql/configure.in,v 1.295 2003/10/14 00:48:09 momjian Exp $ +dnl $Header: /cvsroot/pgsql/configure.in,v 1.296 2003/10/15 22:23:56 tgl Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -234,18 +234,28 @@ AC_PROG_CC([$pgac_cc_list]) # . "$srcdir/src/template/$template" || exit -# adjust CFLAGS per template +# The template may have supplied a default setting for CFLAGS. +# Override this if CFLAGS was set in the original environment. if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value -fi -if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then - CFLAGS="$CFLAGS -g" else - # configure sets CFLAGS to -O2 for gcc, so this is only for non-gcc - if test x"$CFLAGS" = x""; then - CFLAGS="-O" + # autoconf already set the default CFLAGS for gcc to be -O2, but we + # need to specify -fno-strict-aliasing too in case it's gcc 3.3 or later. + if test "$GCC" = yes; then + CFLAGS="$CFLAGS -fno-strict-aliasing" fi fi +# supply -g if --enable-debug +if test "$enable_debug" = yes -a "$ac_cv_prog_cc_g" = yes; then + CFLAGS="$CFLAGS -g" +fi +# default to -O rather than empty CFLAGS; this path will not be taken for +# gcc (since autoconf supplies -O2), nor if --enable-debug (because -O -g +# doesn't work on most non-gcc compilers), nor if the template provided +# some CFLAGS. +if test "$ac_env_CFLAGS_set" != set -a x"$CFLAGS" = x""; then + CFLAGS="-O" +fi AC_MSG_NOTICE([using CFLAGS=$CFLAGS]) # We already have this in Makefile.win32, but configure needs it too @@ -261,7 +271,7 @@ AC_TRY_LINK([], [return 0;], [AC_MSG_RESULT(no) AC_MSG_ERROR([cannot proceed])]) -# Defend against gcc -ffastmath +# Defend against gcc -ffast-math if test "$GCC" = yes; then AC_TRY_COMPILE([], [@%:@ifdef __FAST_MATH__ choke me