Hi Tom, > The test-simple-atomic test is failing to build on Solaris (tested 10 > and older). > > Here's the error from Solaris 10: > > make[3]: Entering directory > `/export/home/tgc/tmp/daily_build/gnulib/000-gnulib-simple-363497c93/gltests' > depbase=`echo test-simple-atomic.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ > /usr/tgcware/gcc9/bin/gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. > -DGNULIB_STRICT_CHECKING=1 -DIN_GNULIB_TESTS=1 -I. -I. -I.. -I./.. > -I../gllib -I./../gllib -I/usr/tgcware/include -D_REENTRANT -g -O2 -MT > test-simple-atomic.o -MD -MP -MF $depbase.Tpo -c -o test-simple-atomic.o > test-simple-atomic.c &&\ > mv -f $depbase.Tpo $depbase.Po > In file included from ../gllib/unistd.h:40, > from ../gllib/stdlib.h:100, > from ../gllib/glthread/thread.h:74, > from test-simple-atomic.c:43: > /usr/include/unistd.h:542:23: error: macro "yield" passed 1 arguments, > but takes just 0 > 542 | extern void yield(void); > | ^ > test-simple-atomic.c:38: note: macro "yield" defined here > 38 | # define yield() gl_thread_yield () > | > make[3]: *** [test-simple-atomic.o] Error 1 > make[3]: Target `check-am' not remade because of errors.
I can reproduce it with a testdir of all of gnulib. This patch fixes it. 2021-03-18 Bruno Haible <br...@clisp.org> simple-atomic tests: Fix compilation error on Solaris 10. Reported by Tom G. Christensen <t...@jupiterrise.com> in <https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00085.html>. * tests/test-simple-atomic.c (yield): Define only after all #includes. diff --git a/tests/test-simple-atomic.c b/tests/test-simple-atomic.c index 04baf05..e30506a 100644 --- a/tests/test-simple-atomic.c +++ b/tests/test-simple-atomic.c @@ -34,17 +34,17 @@ implementation. */ #define REPEAT_COUNT 1000 +#include "glthread/thread.h" +#include "glthread/yield.h" + +#include "macros.h" + #if EXPLICIT_YIELD # define yield() gl_thread_yield () #else # define yield() #endif -#include "glthread/thread.h" -#include "glthread/yield.h" - -#include "macros.h" - /* Counters for each thread. */ static unsigned int counter[THREAD_COUNT][5];