From 7319c0524d66b00a711db7f560d6a34051739e35 Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Fri, 17 Jul 2015 03:01:14 -0400 Subject: [PATCH] AIX: Test the -qlonglong option before use. xlc provides "long long" unconditionally at C99-compatible language levels, and this option provokes a warning. The warning interferes with "configure" tests that fail in response to any warning. Notably, before commit 85a2a8903f7e9151793308d0638621003aded5ae, it interfered with the test for -qnoansialias. Back-patch to 9.0 (all supported versions). --- configure | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 1 + src/template/aix | 2 +- 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 8ac6bb4aa00..e5840e9a082 100755 --- a/configure +++ b/configure @@ -4756,6 +4756,66 @@ if test x"$pgac_cv_prog_cc_cflags__qnoansialias" = x"yes"; then CFLAGS="$CFLAGS -qnoansialias" fi + { $as_echo "$as_me:$LINENO: checking whether $CC supports -qlonglong" >&5 +$as_echo_n "checking whether $CC supports -qlonglong... " >&6; } +if test "${pgac_cv_prog_cc_cflags__qlonglong+set}" = set; then + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +CFLAGS="$pgac_save_CFLAGS -qlonglong" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + pgac_cv_prog_cc_cflags__qlonglong=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + pgac_cv_prog_cc_cflags__qlonglong=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +fi +{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__qlonglong" >&5 +$as_echo "$pgac_cv_prog_cc_cflags__qlonglong" >&6; } +if test x"$pgac_cv_prog_cc_cflags__qlonglong" = x"yes"; then + CFLAGS="$CFLAGS -qlonglong" +fi + elif test "$PORTNAME" = "hpux"; then # On some versions of HP-UX, libm functions do not set errno by default. # Fix that by using +Olibmerrno if the compiler recognizes it. diff --git a/configure.in b/configure.in index 1b8ccb06150..8a148e5ca10 100644 --- a/configure.in +++ b/configure.in @@ -443,6 +443,7 @@ elif test "$ICC" = yes; then elif test "$PORTNAME" = "aix"; then # AIX's xlc has to have strict aliasing turned off too PGAC_PROG_CC_CFLAGS_OPT([-qnoansialias]) + PGAC_PROG_CC_CFLAGS_OPT([-qlonglong]) elif test "$PORTNAME" = "hpux"; then # On some versions of HP-UX, libm functions do not set errno by default. # Fix that by using +Olibmerrno if the compiler recognizes it. diff --git a/src/template/aix b/src/template/aix index 04c97e7bd14..b566ff129df 100644 --- a/src/template/aix +++ b/src/template/aix @@ -7,7 +7,7 @@ if test "$GCC" != yes ; then CFLAGS="-O -qmaxmem=16384 -qsrcmsg" ;; *) - CFLAGS="-O2 -qmaxmem=16384 -qsrcmsg -qlonglong" + CFLAGS="-O2 -qmaxmem=16384 -qsrcmsg" ;; esac fi