aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure6
-rw-r--r--configure.in6
-rw-r--r--src/template/aix4
3 files changed, 14 insertions, 2 deletions
diff --git a/configure b/configure
index cdcb3ceb0c8..4ecd2e19224 100755
--- a/configure
+++ b/configure
@@ -12466,6 +12466,10 @@ fi
# spelling it understands, because it conflicts with
# __declspec(restrict). Therefore we define pg_restrict to the
# appropriate definition, which presumably won't conflict.
+#
+# Allow platforms with buggy compilers to force restrict to not be
+# used by setting $FORCE_DISABLE_RESTRICT=yes in the relevant
+# template.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
if ${ac_cv_c_restrict+:} false; then :
@@ -12512,7 +12516,7 @@ _ACEOF
;;
esac
-if test "$ac_cv_c_restrict" = "no" ; then
+if test "$ac_cv_c_restrict" = "no" -o "x$FORCE_DISABLE_RESTRICT" = "xyes"; then
pg_restrict=""
else
pg_restrict="$ac_cv_c_restrict"
diff --git a/configure.in b/configure.in
index 32bb7bf940d..cea7fd07553 100644
--- a/configure.in
+++ b/configure.in
@@ -1329,8 +1329,12 @@ PGAC_TYPE_LOCALE_T
# spelling it understands, because it conflicts with
# __declspec(restrict). Therefore we define pg_restrict to the
# appropriate definition, which presumably won't conflict.
+#
+# Allow platforms with buggy compilers to force restrict to not be
+# used by setting $FORCE_DISABLE_RESTRICT=yes in the relevant
+# template.
AC_C_RESTRICT
-if test "$ac_cv_c_restrict" = "no" ; then
+if test "$ac_cv_c_restrict" = "no" -o "x$FORCE_DISABLE_RESTRICT" = "xyes"; then
pg_restrict=""
else
pg_restrict="$ac_cv_c_restrict"
diff --git a/src/template/aix b/src/template/aix
index b566ff129df..ed832849dae 100644
--- a/src/template/aix
+++ b/src/template/aix
@@ -10,6 +10,10 @@ if test "$GCC" != yes ; then
CFLAGS="-O2 -qmaxmem=16384 -qsrcmsg"
;;
esac
+
+ # Due to a compiler bug, see 20171013023536.GA492146@rfd.leadboat.com for details,
+ # force restrict not to be used when compiling with xlc.
+ FORCE_DISABLE_RESTRICT=yes
fi
# Native memset() is faster, tested on: