This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] Feature test macros overhaul: Cygwin signal.h
- From: Yaakov Selkowitz <yselkowitz at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 14 Jun 2017 15:18:34 -0000
- Subject: [newlib-cygwin] Feature test macros overhaul: Cygwin signal.h
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=6a6c1c52e6bfea85beb06ea60417b90ae3c6857c
commit 6a6c1c52e6bfea85beb06ea60417b90ae3c6857c
Author: Yaakov Selkowitz <yselkowi@redhat.com>
Date: Tue Jun 13 14:58:33 2017 -0500
Feature test macros overhaul: Cygwin signal.h
This should match newlib's <sys/signal.h>.
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
Diff:
---
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 f304995..700d45c 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