@@ -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*)
@@ -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. */