Re: [PATCH v2 1/3] compat/posix.h: track SA_RESTART fallback
From: Carlo Marcelo Arenas Belón <hidden>
Date: 2025-06-26 01:35:03
On Wed, Jun 25, 2025 at 05:33:29PM -0800, Junio C Hamano wrote:
Carlo Marcelo Arenas Belón [off-list ref] writes:quoted
On Wed, Jun 25, 2025 at 09:07:15AM -0800, Junio C Hamano wrote:quoted
"Carlo Marcelo Arenas Belón via GitGitGadget" [off-list ref] writes:quoted
+# Define USE_NON_POSIX_SIGNAL if don't have support for SA_RESTART or +# prefer using ANSI C signal() over POSIX sigaction() + +AC_CACHE_CHECK([whether SA_RESTART is supported], [ac_cv_siginterrupt], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([#include <signal.h>], [[ + #ifdef SA_RESTART + #endif + siginterrupt(SIGCHLD, 1)This is curious. What is this #ifdef/#endif doing that does not have anything in it?It checks that `SA_RESTART` is defined in `signal.h`, which should fail at least in QNX, NonStop and Windows.The above roughly expands to #include <signal.h> int main(void) { #ifdef SA_RESTART #endif siginterrupt(SIGCHLD, 1); return 0; } Are you saying that a preprocessor macro SA_RESTART, which may or may not be defined, when asked by "#ifdef", causes what is left in the preprocessed source change in any meaningful way to cause the compilation to fail?
Lack of judgement on my part; I apologize and will correct it. Carlo