extern "C" {
#endif
-#if __STDC_VERSION__ >= 199901L
-#define __restrict restrict
-#elif !defined(__GNUC__)
-#define __restrict
-#endif
+#include <features.h>
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
#ifdef _GNU_SOURCE
#define __siginfo siginfo
+#define __ucontext ucontext
#endif
#define __NEED_size_t
#define SIGSTKSZ 8192
#endif
-#ifdef _BSD_SOURCE
+#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
+#define NSIG _NSIG
+#endif
+
+#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
typedef void (*sig_t)(int);
#endif