Thread (2 messages) 2 messages, 2 authors, 2025-06-26

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help