From 68d95f12e72804068e47cda469a7e7cbc1df174d Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 11 Feb 2009 20:02:40 +0000 Subject: [PATCH] Tweak configure to attempt to add -qnoansialias to CFLAGS whenever running on AIX with a non-gcc compiler. The previous coding would do this only if CC was exactly "xlc"; which is a bad idea, as demonstrated by trouble report from Mihai Criveti. --- configure | 9 +++++---- configure.in | 11 ++++++----- src/template/aix | 3 +++ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/configure b/configure index 5924db003b..507b679660 100755 --- a/configure +++ b/configure @@ -3833,7 +3833,7 @@ unset CFLAGS # else: If the template file set something, that is used. # else: If coverage was enabled, don't set anything. # else: If the compiler is GCC, then we use -O2. -# else: If the compiler is something else, then we use -O. +# else: If the compiler is something else, then we use -O, unless debugging. if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value @@ -3852,7 +3852,8 @@ fi # Some versions of GCC support some additional useful warning flags. # Check whether they are supported, and add them to CFLAGS if so. -# ICC pretends to be GCC but it's lying; it doesn't support these options. +# ICC pretends to be GCC but it's lying; it doesn't support these flags, +# but has its own. Also check other compiler-specific flags here. if test "$GCC" = yes -a "$ICC" = no; then CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith" @@ -4157,8 +4158,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -elif test x"${CC}" = x"xlc"; then - # AIX xlc has to have strict aliasing turned off too +elif test "$PORTNAME" = "aix"; then + # AIX's xlc has to have strict aliasing turned off too { echo "$as_me:$LINENO: checking if $CC supports -qnoansialias" >&5 echo $ECHO_N "checking if $CC supports -qnoansialias... $ECHO_C" >&6; } pgac_save_CFLAGS=$CFLAGS diff --git a/configure.in b/configure.in index c11591e5ab..eedd745b16 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.589 2009/01/22 22:27:12 petere Exp $ +dnl $PostgreSQL: pgsql/configure.in,v 1.590 2009/02/11 20:02:39 tgl Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -402,7 +402,7 @@ unset CFLAGS # else: If the template file set something, that is used. # else: If coverage was enabled, don't set anything. # else: If the compiler is GCC, then we use -O2. -# else: If the compiler is something else, then we use -O. +# else: If the compiler is something else, then we use -O, unless debugging. if test "$ac_env_CFLAGS_set" = set; then CFLAGS=$ac_env_CFLAGS_value @@ -421,7 +421,8 @@ fi # Some versions of GCC support some additional useful warning flags. # Check whether they are supported, and add them to CFLAGS if so. -# ICC pretends to be GCC but it's lying; it doesn't support these options. +# ICC pretends to be GCC but it's lying; it doesn't support these flags, +# but has its own. Also check other compiler-specific flags here. if test "$GCC" = yes -a "$ICC" = no; then CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wpointer-arith" @@ -438,8 +439,8 @@ elif test "$ICC" = yes; then PGAC_PROG_CC_CFLAGS_OPT([-mp1]) # Make sure strict aliasing is off (though this is said to be the default) PGAC_PROG_CC_CFLAGS_OPT([-fno-strict-aliasing]) -elif test x"${CC}" = x"xlc"; then - # AIX xlc has to have strict aliasing turned off too +elif test "$PORTNAME" = "aix"; then + # AIX's xlc has to have strict aliasing turned off too PGAC_PROG_CC_CFLAGS_OPT([-qnoansialias]) fi diff --git a/src/template/aix b/src/template/aix index 94ad2f6175..04c97e7bd1 100644 --- a/src/template/aix +++ b/src/template/aix @@ -1,3 +1,6 @@ +# Set appropriate default compiler options if using xlc +# Note: configure will add -qnoansialias if the compiler accepts it, +# even if user specifies a non-default CFLAGS setting. if test "$GCC" != yes ; then case $host_os in aix3.2.5 | aix4.1*)