]> sourceware.org Git - glibc.git/commitdiff
Fix XPG4.2 bits/sigaction.h namespace (bug 21899).
authorJoseph Myers <joseph@codesourcery.com>
Mon, 7 Aug 2017 23:41:32 +0000 (23:41 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 7 Aug 2017 23:41:32 +0000 (23:41 +0000)
For XPG4.2, sa_sigaction, SA_ONSTACK, SA_RESETHAND, SA_RESTART and
SA_NODEFER should be defined in signal.h, but they are only defined
for other standards at present.

This patch fixes the various bits/sigaction.h headers accordingly.
All the fixes are essentially the same, except those for SPARC and
Tile.

For SPARC, the header (a) spuriously defined various nonstandard
macros for __USE_UNIX98 || defined __USE_XOPEN2K8 and (b) defined some
standard macros as aliases of nonstandard ones instead of the other
way round.  This patch fixes the SPARC header to handle these macros
the same way and with the same conditions as those for other
architectures, so the standard macros are the primary ones and the
other ones are defined only for __USE_MISC and are aliases of the
standard ones where applicable.

For Tile, the header spuriously defined the nonstandard macro
SA_NOPTRACE for __USE_UNIX98 || defined __USE_XOPEN2K8; this is moved
to __USE_MISC.

(Those nonstandard macros are in a reserved namespace, but it seems
desirable to be consistent between architectures as far as possible,
and so not define them in standard modes anywhere.)

Tested for x86_64, and with build-many-glibcs.py.

[BZ #21899]
* bits/sigaction.h (struct sigaction): Define sa_handler and
sa_sigaction using union also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/s390/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.  Define directly rather than as alias.
(SA_RESETHAND): Likewise.
(SA_INTERRUPT): Define only for [__USE_MISC].
(SA_NOMASK): Define as alias of SA_NODEFER, only for [__USE_MISC].
(SA_ONESHOT): Define as alias of SA_RESETHAND, only for
[__USE_MISC].
(SA_STACK): Define only for [__USE_MISC].
* sysdeps/unix/sysv/linux/tile/bits/sigaction.h
(struct sigaction): Define sa_handler and sa_sigaction using union
also for [__USE_XOPEN_EXTENDED].
(SA_ONSTACK): Change [__USE_UNIX98] condition to
[__USE_XOPEN_EXTENDED].
(SA_RESTART): Likewise.
(SA_NODEFER): Likewise.
(SA_RESETHAND): Likewise.
(SA_NOPTRACE): Define only for [__USE_MISC].

ChangeLog
bits/sigaction.h
sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
sysdeps/unix/sysv/linux/bits/sigaction.h
sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
sysdeps/unix/sysv/linux/mips/bits/sigaction.h
sysdeps/unix/sysv/linux/s390/bits/sigaction.h
sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
sysdeps/unix/sysv/linux/tile/bits/sigaction.h

index 4ca0c0ee1ef856b7f37a2bdd3df9b6206d932bc8..6add9dc4fa11662d75813762cfb41b99355591a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,84 @@
 2017-08-07  Joseph Myers  <joseph@codesourcery.com>
 
+       [BZ #21899]
+       * bits/sigaction.h (struct sigaction): Define sa_handler and
+       sa_sigaction using union also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/s390/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.  Define directly rather than as alias.
+       (SA_RESETHAND): Likewise.
+       (SA_INTERRUPT): Define only for [__USE_MISC].
+       (SA_NOMASK): Define as alias of SA_NODEFER, only for [__USE_MISC].
+       (SA_ONESHOT): Define as alias of SA_RESETHAND, only for
+       [__USE_MISC].
+       (SA_STACK): Define only for [__USE_MISC].
+       * sysdeps/unix/sysv/linux/tile/bits/sigaction.h
+       (struct sigaction): Define sa_handler and sa_sigaction using union
+       also for [__USE_XOPEN_EXTENDED].
+       (SA_ONSTACK): Change [__USE_UNIX98] condition to
+       [__USE_XOPEN_EXTENDED].
+       (SA_RESTART): Likewise.
+       (SA_NODEFER): Likewise.
+       (SA_RESETHAND): Likewise.
+       (SA_NOPTRACE): Define only for [__USE_MISC].
+
        * catgets/catgets.c (catgets): Use uintN_t instead of u_intN_t.
        * catgets/catgetsinfo.h (struct catalog_obj): Likewise.
        (struct catalog_info): Likewise.
index f6c739fea0b69ca411675a52c97ce898e619ebab..f0a38873c6d1e1bd30169d9454722697f2cb58b7 100644 (file)
@@ -29,7 +29,7 @@
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -52,10 +52,10 @@ struct sigaction
   };
 
 /* Bits in `sa_flags'.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK    0x0001  /* Take signal on signal stack.  */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART    0x0002  /* Restart syscall on signal return.  */
 # define SA_NODEFER    0x0010  /* Don't automatically block the signal when
                                    its handler is being executed.  */
index 42eaa818a5537fa679e541b48065309eb4e08151..9e71fa18c1ecac9e236a39098a018b7605764013 100644 (file)
@@ -24,7 +24,7 @@
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -51,10 +51,10 @@ struct sigaction
 #define SA_NOCLDWAIT  0x00000020 /* Don't create zombie on child death.  */
 #define SA_SIGINFO    0x00000040 /* Invoke signal-catching function with
                                    three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART   0x00000002 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x00000008 /* Don't automatically block the signal
                                    when its handler is being executed.  */
index 1e96d74daf3fa2305b7f4aed6679ec0770b95c72..149551f088f95d7531c544fac7b76891ae51c363 100644 (file)
@@ -24,7 +24,7 @@
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -54,10 +54,10 @@ struct sigaction
 #define SA_NOCLDWAIT  2                 /* Don't create zombie on child death.  */
 #define SA_SIGINFO    4                 /* Invoke signal-catching function with
                                    three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
                                    its handler is being executed.  */
index 06ba2db8f2d92864d061f64f8329e69de6f5afb6..c763538822c4afd9f1b3df5a8ed4e9429705046a 100644 (file)
@@ -26,7 +26,7 @@
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -57,10 +57,10 @@ struct sigaction
 #define SA_NOCLDWAIT  0x00000080  /* Don't create zombie on child death.  */
 #define SA_SIGINFO    0x00000010  /* Invoke signal-catching function with
                                     three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESETHAND 0x00000004 /* Reset to SIG_DFL on entry to handler.  */
 # define SA_NODEFER   0x00000020 /* Don't automatically block the signal
                                    when its handler is being executed.  */
index 099fbf55c9a65bc11d66b43c9a502ed6a0eaf420..96317078039f18ac35aa4f92c91c25fe4f962a5e 100644 (file)
@@ -24,7 +24,7 @@
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -51,10 +51,10 @@ struct sigaction
 #define SA_NOCLDSTOP  0x00000001 /* Don't send SIGCHLD when children stop.  */
 #define SA_NOCLDWAIT  0x00000002 /* Don't create zombie on child death.  */
 #define SA_SIGINFO    0x00000004
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal
                                    when its handler is being executed.  */
index c61a49ef88188d99ca18d162dbcb9ab0d4d6f2d9..1caddf69c340954e64ac1c2a42e1ab2b5c6f73e8 100644 (file)
@@ -27,7 +27,7 @@ struct sigaction
     int sa_flags;
 
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -60,10 +60,10 @@ struct sigaction
 #define SA_NOCLDWAIT  0x00010000 /* Don't create zombie on child death.  */
 #define SA_SIGINFO    0x00000008 /* Invoke signal-catching function with
                                    three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler.  */
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
index 9fc4ba41cac085b17fa3a6ebce31b6aab316c5cb..c4d2c6436905cfbfc6fb896754dbc3c5804d7e63 100644 (file)
@@ -27,7 +27,7 @@
 struct sigaction
   {
     /* Signal handler. */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -57,7 +57,7 @@ struct sigaction
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -88,10 +88,10 @@ struct sigaction
 #define SA_NOCLDWAIT  2                 /* Don't create zombie on child death.  */
 #define SA_SIGINFO    4                 /* Invoke signal-catching function with
                                    three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
                                    its handler is being executed.       */
index 6ab47f416c62f0fb95a33a2f0b50394fbe49489c..a32dd5d0ef1c0319f687ee3487f5ad27d008d8ac 100644 (file)
@@ -26,7 +26,7 @@
 struct sigaction
   {
     /* Signal handler. */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -60,19 +60,21 @@ struct sigaction
 #define SA_NOCLDWAIT 0x00000100  /* Don't create zombie on child death.  */
 #define SA_SIGINFO   0x00000200  /* Invoke signal-catching function with
                                    three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART   0x00000002 /* Restart syscall on signal return.  */
-# define SA_INTERRUPT 0x00000010 /* Historical no-op.  */
-# define SA_NOMASK    0x00000020 /* Don't automatically block the signal when
+# define SA_NODEFER   0x00000020 /* Don't automatically block the signal when
                                    its handler is being executed.  */
-# define SA_ONESHOT   0x00000004 /* Reset to SIG_DFL on entry to handler.  */
+# define SA_RESETHAND 0x00000004 /* Reset to SIG_DFL on entry to handler.  */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x00000010 /* Historical no-op.  */
 
 /* Some aliases for the SA_ constants.  */
-# define SA_NODEFER   SA_NOMASK
-# define SA_RESETHAND SA_ONESHOT
+# define SA_NOMASK    SA_NODEFER
+# define SA_ONESHOT   SA_RESETHAND
 # define SA_STACK     SA_ONSTACK
 #endif
 
index 6b8c1d7de04e086ff4d909d297d294057aae77ae..9f72698db5a3c5f8cbf984298e2c5f35f098340f 100644 (file)
@@ -24,7 +24,7 @@
 struct sigaction
   {
     /* Signal handler.  */
-#ifdef __USE_POSIX199309
+#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
     union
       {
        /* Used if SA_SIGINFO is not set.  */
@@ -54,17 +54,17 @@ struct sigaction
 #define SA_NOCLDWAIT  2                 /* Don't create zombie on child death.  */
 #define SA_SIGINFO    4                 /* Invoke signal-catching function with
                                    three arguments instead of one.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
-# define SA_NOPTRACE  0x02000000 /* Don't ptrace this signal. */
+#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
 #endif
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
                                    its handler is being executed.  */
 # define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler.  */
 #endif
 #ifdef __USE_MISC
+# define SA_NOPTRACE  0x02000000 /* Don't ptrace this signal. */
 # define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
 
 /* Some aliases for the SA_ constants.  */
This page took 0.065754 seconds and 5 git commands to generate.