This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH] Feature test macros overhaul: Cygwin signal.h
- From: Yaakov Selkowitz <yselkowi at redhat dot com>
- To: cygwin-patches at cygwin dot com
- Date: Tue, 13 Jun 2017 15:01:08 -0500
- Subject: [PATCH] Feature test macros overhaul: Cygwin signal.h
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=yselkowi at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 77AAB3DE3C
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 77AAB3DE3C
This should match newlib's <sys/signal.h>.
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
---
winsup/cygwin/include/cygwin/signal.h | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/winsup/cygwin/include/cygwin/signal.h b/winsup/cygwin/include/cygwin/signal.h
index f30499505..700d45c13 100644
--- a/winsup/cygwin/include/cygwin/signal.h
+++ b/winsup/cygwin/include/cygwin/signal.h
@@ -190,6 +190,8 @@ struct _sigcommune
};
};
+#if __POSIX_VISIBLE >= 199309
+
#define __SI_PAD_SIZE 32
#ifdef __INSIDE_CYGWIN__
# ifndef max
@@ -251,6 +253,8 @@ typedef struct
} siginfo_t;
#pragma pack(pop)
+#endif /* __POSIX_VISIBLE >= 199309 */
+
enum
{
SI_USER = 0, /* sent by kill, raise, pthread_kill */
@@ -314,6 +318,8 @@ enum
typedef void (*_sig_func_ptr)(int);
+#if __POSIX_VISIBLE
+
struct sigaction
{
__extension__ union
@@ -344,11 +350,17 @@ struct sigaction
Do not use. */
#define _SA_INTERNAL_MASK 0xf000 /* bits in this range are internal */
+#endif /* __POSIX_VISIBLE */
+
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
+
#undef MINSIGSTKSZ
#define MINSIGSTKSZ 8192
#undef SIGSTKSZ
#define SIGSTKSZ 32768
+#endif /* __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809 */
+
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt */
#define SIGQUIT 3 /* quit */
@@ -397,20 +409,32 @@ struct sigaction
#define SIG_HOLD ((_sig_func_ptr)2) /* Signal in signal mask */
+#if __POSIX_VISIBLE >= 200809
void psiginfo (const siginfo_t *, const char *);
+#endif
+#if __POSIX_VISIBLE
int sigwait (const sigset_t *, int *);
+#endif
+#if __POSIX_VISIBLE >= 199309
int sigwaitinfo (const sigset_t *, siginfo_t *);
+#endif
+#if __XSI_VISIBLE >= 4
int sighold (int);
int sigignore (int);
int sigrelse (int);
_sig_func_ptr sigset (int, _sig_func_ptr);
+#endif
+#if __POSIX_VISIBLE >= 199309
int sigqueue(pid_t, int, const union sigval);
+#endif
+#if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
int siginterrupt (int, int);
+#endif
#ifdef __INSIDE_CYGWIN__
extern const char *sys_sigabbrev[];
extern const char *sys_siglist[];
-#else
+#elif __BSD_VISIBLE
extern const char __declspec(dllimport) *sys_sigabbrev[];
extern const char __declspec(dllimport) *sys_siglist[];
#endif
--
2.12.3