From 899f49cfce7484b97be50d9c1aac2557ca7d359c Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 21 Apr 2006 23:11:58 +0000 Subject: [PATCH] Use special gcc -W flags only if we are using gcc, not if we are using the Intel compiler. Jeremy Drake --- configure | 67 ++++++++++++++++++++++++++++++++++++++++++++++------ configure.in | 23 ++++++++++++------ 2 files changed, 76 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 4bfa4167ce..ebab2289ba 100755 --- a/configure +++ b/configure @@ -2713,12 +2713,65 @@ else fi fi -if test "$GCC" = yes; then - CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith -Winline" +# The Intel compiler on Linux supports most gcc options, but not +# all of them, so only add these options if we are really using +# gcc - # Some versions of GCC support some additional useful warning flags. - # Check whether they are supported, and add them to CFLAGS if so. - echo "$as_me:$LINENO: checking if $CC supports -Wdeclaration-after-statement" >&5 +if test "$GCC" = yes; then + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __INTEL_COMPILER +choke me +#endif + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ICC=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ICC=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$ICC" = no; then + CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith -Winline" + + # Some versions of GCC support some additional useful warning flags. + # Check whether they are supported, and add them to CFLAGS if so. + echo "$as_me:$LINENO: checking if $CC supports -Wdeclaration-after-statement" >&5 echo $ECHO_N "checking if $CC supports -Wdeclaration-after-statement... $ECHO_C" >&6 pgac_save_CFLAGS=$CFLAGS CFLAGS="$pgac_save_CFLAGS -Wdeclaration-after-statement" @@ -2771,7 +2824,7 @@ echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - echo "$as_me:$LINENO: checking if $CC supports -Wendif-labels" >&5 + echo "$as_me:$LINENO: checking if $CC supports -Wendif-labels" >&5 echo $ECHO_N "checking if $CC supports -Wendif-labels... $ECHO_C" >&6 pgac_save_CFLAGS=$CFLAGS CFLAGS="$pgac_save_CFLAGS -Wendif-labels" @@ -2824,6 +2877,7 @@ echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi # Disable strict-aliasing rules; needed for gcc 3.3+ echo "$as_me:$LINENO: checking if $CC supports -fno-strict-aliasing" >&5 @@ -2897,7 +2951,6 @@ fi # Check if the compiler still works with the template settings echo "$as_me:$LINENO: checking whether the C compiler still works" >&5 echo $ECHO_N "checking whether the C compiler still works... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF diff --git a/configure.in b/configure.in index 8e627b9ce5..982e2081ce 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $PostgreSQL: pgsql/configure.in,v 1.457 2006/04/19 16:32:08 tgl Exp $ +dnl $PostgreSQL: pgsql/configure.in,v 1.458 2006/04/21 23:11:58 momjian Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -248,13 +248,22 @@ else fi fi -if test "$GCC" = yes; then - CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith -Winline" +# The Intel compiler on Linux supports most gcc options, but not +# all of them, so only add these options if we are really using +# gcc - # Some versions of GCC support some additional useful warning flags. - # Check whether they are supported, and add them to CFLAGS if so. - PGAC_PROG_CC_CFLAGS_OPT([-Wdeclaration-after-statement]) - PGAC_PROG_CC_CFLAGS_OPT([-Wendif-labels]) +if test "$GCC" = yes; then +AC_TRY_COMPILE([], [@%:@ifndef __INTEL_COMPILER +choke me +@%:@endif], [ICC=[yes]], [ICC=[no]]) + if test "$ICC" = no; then + CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith -Winline" + + # Some versions of GCC support some additional useful warning flags. + # Check whether they are supported, and add them to CFLAGS if so. + PGAC_PROG_CC_CFLAGS_OPT([-Wdeclaration-after-statement]) + PGAC_PROG_CC_CFLAGS_OPT([-Wendif-labels]) + fi # Disable strict-aliasing rules; needed for gcc 3.3+ PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing])