diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | conform/data/signal.h-data | 4 | ||||
-rw-r--r-- | signal/signal.h | 21 |
3 files changed, 26 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index 85722c8f86..865c7e9960 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2017-05-23 Joseph Myers <joseph@codesourcery.com> + [BZ #21511] + * signal/signal.h: Include <bits/types/struct_sigstack.h> only if + [(__USE_XOPEN_EXTENDED && !__USE_XOPEN2K8) || __USE_MISC]. + (sigstack): Declare only if [(__USE_XOPEN_EXTENDED && + !__USE_XOPEN2K) || __USE_MISC]. + * conform/data/signal.h-data (struct sigstack): Expect type only + if [!XOPEN2K8 && !POSIX2008]. + (sigstack): Expect function only if [XPG42 || UNIX98]. + [BZ #21457] * sysdeps/arm/sys/ucontext.h: Do not include <signal.h>, <bits/sigstack.h>, <bits/types/struct_sigstack.h> or diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data index 3651e86ae1..8fbe3ac55d 100644 --- a/conform/data/signal.h-data +++ b/conform/data/signal.h-data @@ -141,10 +141,12 @@ element stack_t {void*} ss_sp element stack_t size_t ss_size element stack_t int ss_flags +# if !defined XOPEN2K8 && !defined POSIX2008 type {struct sigstack} element {struct sigstack} int ss_onstack element {struct sigstack} {void*} ss_sp +# endif # endif # ifndef XPG4 @@ -249,7 +251,7 @@ function int sigqueue (pid_t, int, const union sigval) function int sigrelse (int) function void (*sigset (int, void(*)(int)))(int) # endif -# if !defined POSIX +# if defined XPG42 || defined UNIX98 function int sigstack (struct sigstack*, struct sigstack*) # endif function int sigsuspend (const sigset_t*) diff --git a/signal/signal.h b/signal/signal.h index a51e912d08..947873ea8e 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -297,7 +297,6 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; extern int siginterrupt (int __sig, int __interrupt) __THROW; # include <bits/sigstack.h> -# include <bits/types/struct_sigstack.h> # include <bits/types/stack_t.h> # include <bits/ss_flags.h> # if defined __USE_XOPEN || defined __USE_XOPEN2K8 @@ -305,12 +304,6 @@ extern int siginterrupt (int __sig, int __interrupt) __THROW; # include <sys/ucontext.h> # endif -/* Run signals handlers on the stack specified by SS (if not NULL). - If OSS is not NULL, it is filled in with the old signal stack status. - This interface is obsolete and on many platform not implemented. */ -extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) - __THROW __attribute_deprecated__; - /* Alternate signal handler stack interface. This interface should always be preferred over `sigstack'. */ extern int sigaltstack (const struct sigaltstack *__restrict __ss, @@ -318,6 +311,20 @@ extern int sigaltstack (const struct sigaltstack *__restrict __ss, #endif /* Use POSIX.1-2008 or X/Open Unix. */ +#if ((defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ + || defined __USE_MISC) +# include <bits/types/struct_sigstack.h> +#endif + +#if ((defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \ + || defined __USE_MISC) +/* Run signals handlers on the stack specified by SS (if not NULL). + If OSS is not NULL, it is filled in with the old signal stack status. + This interface is obsolete and on many platform not implemented. */ +extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) + __THROW __attribute_deprecated__; +#endif + #ifdef __USE_XOPEN_EXTENDED /* Simplified interface for signal management. */ |