On macOS 12.5, in a testdir for module 'execute', I'm seeing these compilation errors:
In file included from ../../gllib/execute.c:71: ./spawn.h:692:19: error: use of undeclared identifier 'POSIX_SPAWN_SETSCHEDPARAM' | POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER) ^ ./spawn.h:692:47: error: use of undeclared identifier 'POSIX_SPAWN_SETSCHEDULER' | POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER) ^ This patch fixes them. 2023-02-04 Bruno Haible <br...@clisp.org> spawn: Fix compilation error on macOS (regression 2023-01-22). * lib/spawn.in.h: Tweak logic for defining the POSIX_SPAWN_* constants. diff --git a/lib/spawn.in.h b/lib/spawn.in.h index 958464a7d2..b35e5d77b3 100644 --- a/lib/spawn.in.h +++ b/lib/spawn.in.h @@ -144,19 +144,18 @@ typedef struct /* Flags to be set in the 'posix_spawnattr_t'. */ #if @HAVE_POSIX_SPAWN@ -# if !@REPLACE_POSIX_SPAWN@ -/* Use the values from the system, but provide the missing ones. */ -# ifndef POSIX_SPAWN_SETSCHEDPARAM -# define POSIX_SPAWN_SETSCHEDPARAM 0 -# endif -# ifndef POSIX_SPAWN_SETSCHEDULER -# define POSIX_SPAWN_SETSCHEDULER 0 -# endif -# else /* @REPLACE_POSIX_SPAWN@ */ +# if @REPLACE_POSIX_SPAWN@ /* Use the values from the system, for better compatibility. */ /* But this implementation does not support AIX extensions. */ # undef POSIX_SPAWN_FORK_HANDLERS # endif +/* Provide the values that the system is lacking. */ +# ifndef POSIX_SPAWN_SETSCHEDPARAM +# define POSIX_SPAWN_SETSCHEDPARAM 0 +# endif +# ifndef POSIX_SPAWN_SETSCHEDULER +# define POSIX_SPAWN_SETSCHEDULER 0 +# endif #else /* !@HAVE_POSIX_SPAWN@ */ # define POSIX_SPAWN_RESETIDS 0x01 # define POSIX_SPAWN_SETPGROUP 0x02