Testing https://www.pixelbeat.org/co/coreutils-ss.tar.xz on solaris 11 
(cfarm216.cfarm.net)
I get a build failure (with gcc 14) due to an already known issue on solaris 
where it
defines a two param static_assert() macro.

  CC       lib/libcoreutils_a-xfts.o
./lib/dirent.h:100:36: error: macro "static_assert" requires 2 arguments, but 
only 1 given
/usr/include/assert.h:25:9: note: macro "static_assert" defined here
      | #if (__STDC_VERSION__ - 0 >= 201112L) && !defined(__cplusplus)
   25 | #define static_assert(a, b) _Static_assert(a, b)
      |         ^~~~~~~~~~~~~
      | #endif

Note gcc 14 is on this system and causes the conflict avoidance to be bypassed.
Also the static_assert keyword is supported and so HAVE_C_STATIC_ASSERT is 
defined,
with would otherwise cause the conflict avoidance to be bypassed.
I.e. the conflict avoidance used in m4/assert_h.m4 (from commit 0814a293a4).
If I unconditionally use the conflict avoidance with this then coreutils 
compiles fine:

diff --git a/m4/assert_h.m4 b/m4/assert_h.m4
index 91f446e7f6..5692be028e 100644
--- a/m4/assert_h.m4
+++ b/m4/assert_h.m4
@@ -61,7 +61,7 @@ AC_DEFUN([gl_ASSERT_H],
   dnl Break the #undef_s apart with a comment so that 'configure' does
   dnl not comment them out.
   AH_VERBATIM([zzstatic_assert],
-[#if (!(defined __clang__ \
+[#if (1 || !(defined __clang__ \

I'm not sure how to best address this though given all the other conditions
around the conflict avoidance logic.


BTW I see a similar report at https://github.com/coreutils/gnulib/pull/16
where wget-1.25.0 is failing to compile similarly on 
(Centos7.9/Amd64/glibc-2.17/gcc-14.1)
Note this is also gcc 14, but the conflict is with the internal 
_Static_assert() macro.

cheers,
Pádraig

Reply via email to