With AIX xlc v16.1.0, various compilations get internal errors:
/opt/IBM/xlc/16.1.0/bin/xlc_r -qmaxmem=33554432 -qnoansialias -g -O2 -qsrcmsg
-I/scratch/nm/farmlike/../cmpx/src/interfaces/libpq -I../../../src/include
-I/scratch/nm/farmlike/../cmpx/src/include -c -o pg_backup_utils.o
/scratch/nm/farmlike/../cmpx/src/bin/pg_dump/pg_backup_utils.c
/opt/IBM/xlc/16.1.0/bin/.orig/xlc_r: 1501-230 (S) Internal compiler error;
please contact your Service Representative. For more information visit:
http://www.ibm.com/support/docview.wss?uid=swg21110810
I tracked this down to our use of -qsrcmsg, which I plan to remove from the
default CFLAGS, including back branches. While this is a compiler bug, it's
not worth breaking plausible builds to default-enable the minor change
-qsrcmsg provides:
$ echo 'break me' >x.c
$ /opt/IBM/xlc/16.1.0/bin/xlc_r x.c
"x.c", line 1.1: 1506-275 (S) Unexpected text 'break' encountered.
"x.c", line 1.7: 1506-166 (S) Definition of function me requires parentheses.
"x.c", line 1.9: 1506-204 (S) Unexpected end of file.
$ /opt/IBM/xlc/16.1.0/bin/xlc_r -qsrcmsg x.c
1 | break me
a.....b.c
a - 1506-275 (S) Unexpected text 'break' encountered.
b - 1506-166 (S) Definition of function me requires parentheses.
c - 1506-204 (S) Unexpected end of file.
diff --git a/src/template/aix b/src/template/aix
index ed83284..999cd35 100644
--- a/src/template/aix
+++ b/src/template/aix
@@ -1,13 +1,14 @@
-# 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.
+# Set default options if using xlc. This formerly included -qsrcmsg, but that
+# option elicits internal compiler errors from xlc v16.1.0. 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*)
- CFLAGS="-O -qmaxmem=16384 -qsrcmsg"
+ CFLAGS="-O -qmaxmem=16384"
;;
*)
- CFLAGS="-O2 -qmaxmem=16384 -qsrcmsg"
+ CFLAGS="-O2 -qmaxmem=16384"
;;
esac