On 2026-02-13 22:36, Bruno Haible via cfarm-users wrote:
Yuck. Claims to support ISO C 99, but in fact doesn't: it can't grok
ISO C 99 compound literals and thus does not compile current GNU coreutils:

xlc -q64 -qthreaded -qtls -qlanglvl=extc1x -I. -I.. -I./lib  -Ilib -I../lib 
-Isrc -I../src -I/home/haible/prefix64/include -D_THREAD_SAFE   -g -c -o 
src/ls.o ../src/ls.c
"../src/ls.c", line 628.27: 1506-196 (W) Initialization between types "const char*" and 
"int" is not allowed.
"../src/ls.c", line 628.34: 1506-026 (S) Number of initializers cannot be 
greater than the number of aggregate members.

where ls.c has code like this:

static struct bin_str color_indicator[] =
   {
     { 2, (char const []) {'\033','['} },

I don't see that compilation problem when compiling bleeding-edge coreutils with the only "old" (pre-Clang) version of IBM XL C for AIX that IBM still supports, which is version 16.1 (2018). This compiler version is supported until April of this year, with extended (i.e., even more expensive) support through April 2029. I tested for the compilation problem by compiling on cfarm111.cfarm.net with /opt/IBM/xlc/16.1.0/bin/xlc. If you're using an older version of xlc, that would explain why you see a compilation problem but I don't.

It's too bad that cfarm.net won't have any copy of the pre-Clang xlc any more, but I suppose if IBM doesn't care enough to make that compiler easily available then free-software maintainers shouldn't care enough to port to it.

PS. I did need to update Gnulib a bit to get it to work with xlc 16.1; this is folded into bleeding-edge Coreutils now. See:

https://lists.gnu.org/r/bug-gnulib/2026-02/msg00095.html
https://lists.gnu.org/r/bug-gnulib/2026-02/msg00096.html

This sort of fixup will stop happening after cfarm111 is decommissioned.
_______________________________________________
cfarm-users mailing list
[email protected]
https://lists.tetaneutral.net/listinfo/cfarm-users

Reply via email to