Thanks for looking into it.  From the trace, my guess
is that FreeBSD always reports that SA_SIGINFO is set
because FreeBSD always passes the relevant info to signal handlers
(at the low level, this doesn't cause problems so it's OK).
Always reporting SA_SIGINFO violates POSIX but I doubt whether
anybody really cares, so does the following patch fix things for you?
It simply adjusts the test so that it doesn't check for this bug.

diff --git a/tests/test-sigaction.c b/tests/test-sigaction.c
index 2b5ba53..ab32419 100644
--- a/tests/test-sigaction.c
+++ b/tests/test-sigaction.c
@@ -66,7 +66,6 @@ handler (int sig)
   struct sigaction sa;
   ASSERT (sig == SIGABRT);
   ASSERT (sigaction (SIGABRT, NULL, &sa) == 0);
-  ASSERT ((sa.sa_flags & SA_SIGINFO) == 0);
   switch (entry_count++)
     {
     case 0:
@@ -106,7 +105,6 @@ main (void)
 
   sa.sa_handler = SIG_DFL;
   ASSERT (sigaction (SIGABRT, &sa, &old_sa) == 0);
-  ASSERT ((old_sa.sa_flags & SA_SIGINFO) == 0);
 #if !(defined __GLIBC__ || defined __UCLIBC__) /* see above */
   ASSERT (old_sa.sa_handler == SIG_DFL);
 #endif

Reply via email to