[newlib-cygwin] Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC

Corinna Vinschen corinna@sourceware.org
Tue Feb 18 10:35:00 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=40245925ce9d6b9a9c4ed6140cea39d948d10898

commit 40245925ce9d6b9a9c4ed6140cea39d948d10898
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Tue Feb 18 11:17:43 2020 +0100

    Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC
    
    NSIG is a deprecated symbol only visible under MISC visibility.
    _NSIG is used widely instead, and on most systems NSIG is
    defined in terms of _NSIG.
    
    Follow suit: Change NSIG to _NSIG throughout and change visiblity
    of NSIG to be defined only in __MISC_VISIBLE case.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/exceptions.cc           |  6 +++---
 winsup/cygwin/include/cygwin/signal.h | 10 +++++++---
 winsup/cygwin/release/3.1.4           |  4 ++++
 winsup/cygwin/signal.cc               | 14 +++++++-------
 winsup/cygwin/sigproc.cc              |  8 ++++----
 winsup/cygwin/sigproc.h               | 22 +++++++++++-----------
 winsup/cygwin/strsig.cc               |  2 +-
 7 files changed, 37 insertions(+), 29 deletions(-)

diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 3e7d727..b331dc8 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1166,7 +1166,7 @@ extern "C" int
 sighold (int sig)
 {
   /* check that sig is in right range */
-  if (sig < 0 || sig >= NSIG)
+  if (sig < 0 || sig >= _NSIG)
     {
       set_errno (EINVAL);
       syscall_printf ("signal %d out of range", sig);
@@ -1182,7 +1182,7 @@ extern "C" int
 sigrelse (int sig)
 {
   /* check that sig is in right range */
-  if (sig < 0 || sig >= NSIG)
+  if (sig < 0 || sig >= _NSIG)
     {
       set_errno (EINVAL);
       syscall_printf ("signal %d out of range", sig);
@@ -1201,7 +1201,7 @@ sigset (int sig, _sig_func_ptr func)
   _sig_func_ptr prev;
 
   /* check that sig is in right range */
-  if (sig < 0 || sig >= NSIG || sig == SIGKILL || sig == SIGSTOP)
+  if (sig < 0 || sig >= _NSIG || sig == SIGKILL || sig == SIGSTOP)
     {
       set_errno (EINVAL);
       syscall_printf ("SIG_ERR = sigset (%d, %p)", sig, func);
diff --git a/winsup/cygwin/include/cygwin/signal.h b/winsup/cygwin/include/cygwin/signal.h
index e659d7a..bc4ad18 100644
--- a/winsup/cygwin/include/cygwin/signal.h
+++ b/winsup/cygwin/include/cygwin/signal.h
@@ -438,14 +438,18 @@ struct sigaction
 #define	SIGUSR2 31	/* user defined signal 2 */
 
 #if __WORDSIZE == 64
-#define NSIG	65      /* signal 0 implied */
+#define _NSIG	65      /* signal 0 implied */
 #else
-#define NSIG	33      /* signal 0 implied */
+#define _NSIG	33      /* signal 0 implied */
+#endif
+
+#if __MISC_VISIBLE
+#define NSIG	_NSIG
 #endif
 
 /* Real-Time signals per SUSv3.  RT_SIGMAX is defined as 8 in limits.h */
 #define SIGRTMIN 32
-#define SIGRTMAX (NSIG - 1)
+#define SIGRTMAX (_NSIG - 1)
 
 #define SIG_HOLD ((_sig_func_ptr)2)	/* Signal in signal mask */
 
diff --git a/winsup/cygwin/release/3.1.4 b/winsup/cygwin/release/3.1.4
index 06ed1eb..1c44954 100644
--- a/winsup/cygwin/release/3.1.4
+++ b/winsup/cygwin/release/3.1.4
@@ -13,6 +13,10 @@ What changed:
 
 - Allow AF_LOCAL sockets to be opened with O_PATH.
 
+- <signal.h>: New macro _NSIG replacing NSIG.  NSIG is now only
+  visible to MISC builds, as on Linux.
+
+
 Bug Fixes:
 ----------
 
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index 8ac59d4..bd1168e 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -36,7 +36,7 @@ signal (int sig, _sig_func_ptr func)
   _sig_func_ptr prev;
 
   /* check that sig is in right range */
-  if (sig <= 0 || sig >= NSIG || sig == SIGKILL || sig == SIGSTOP)
+  if (sig <= 0 || sig >= _NSIG || sig == SIGKILL || sig == SIGSTOP)
     {
       set_errno (EINVAL);
       syscall_printf ("SIG_ERR = signal (%d, %p)", sig, func);
@@ -311,7 +311,7 @@ kill0 (pid_t pid, siginfo_t& si)
 {
   syscall_printf ("kill (%d, %d)", pid, si.si_signo);
   /* check that sig is in right range */
-  if (si.si_signo < 0 || si.si_signo >= NSIG)
+  if (si.si_signo < 0 || si.si_signo >= _NSIG)
     {
       set_errno (EINVAL);
       syscall_printf ("signal %d out of range", si.si_signo);
@@ -417,7 +417,7 @@ sigaction_worker (int sig, const struct sigaction *newact,
     {
       sig_dispatch_pending ();
       /* check that sig is in right range */
-      if (sig <= 0 || sig >= NSIG)
+      if (sig <= 0 || sig >= _NSIG)
 	set_errno (EINVAL);
       else
 	{
@@ -480,7 +480,7 @@ extern "C" int
 sigaddset (sigset_t *set, const int sig)
 {
   /* check that sig is in right range */
-  if (sig <= 0 || sig >= NSIG)
+  if (sig <= 0 || sig >= _NSIG)
     {
       set_errno (EINVAL);
       syscall_printf ("SIG_ERR = sigaddset signal %d out of range", sig);
@@ -495,7 +495,7 @@ extern "C" int
 sigdelset (sigset_t *set, const int sig)
 {
   /* check that sig is in right range */
-  if (sig <= 0 || sig >= NSIG)
+  if (sig <= 0 || sig >= _NSIG)
     {
       set_errno (EINVAL);
       syscall_printf ("SIG_ERR = sigdelset signal %d out of range", sig);
@@ -510,7 +510,7 @@ extern "C" int
 sigismember (const sigset_t *set, int sig)
 {
   /* check that sig is in right range */
-  if (sig <= 0 || sig >= NSIG)
+  if (sig <= 0 || sig >= _NSIG)
     {
       set_errno (EINVAL);
       syscall_printf ("SIG_ERR = sigdelset signal %d out of range", sig);
@@ -709,7 +709,7 @@ sigqueue (pid_t pid, int sig, const union sigval value)
     }
   if (sig == 0)
     return 0;
-  if (sig < 0 || sig >= NSIG)
+  if (sig < 0 || sig >= _NSIG)
     {
       set_errno (EINVAL);
       return -1;
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index aff1ed6..7286e32 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -71,7 +71,7 @@ static void WINAPI wait_sig (VOID *arg);
 
 class pending_signals
 {
-  sigpacket sigs[NSIG + 1];
+  sigpacket sigs[_NSIG + 1];
   sigpacket start;
   bool retry;
 
@@ -91,7 +91,7 @@ void __stdcall
 sigalloc ()
 {
   cygheap->sigs = global_sigs =
-    (struct sigaction *) ccalloc_abort (HEAP_SIGS, NSIG, sizeof (struct sigaction));
+    (struct sigaction *) ccalloc_abort (HEAP_SIGS, _NSIG, sizeof (struct sigaction));
   global_sigs[SIGSTOP].sa_flags = SA_RESTART | SA_NODEFER;
 }
 
@@ -100,7 +100,7 @@ signal_fixup_after_exec ()
 {
   global_sigs = cygheap->sigs;
   /* Set up child's signal handlers */
-  for (int i = 0; i < NSIG; i++)
+  for (int i = 0; i < _NSIG; i++)
     {
       global_sigs[i].sa_mask = 0;
       if (global_sigs[i].sa_handler != SIG_IGN)
@@ -449,7 +449,7 @@ sigproc_init ()
   char char_sa_buf[1024];
   PSECURITY_ATTRIBUTES sa = sec_user_nih ((PSECURITY_ATTRIBUTES) char_sa_buf, cygheap->user.sid());
   DWORD err = fhandler_pipe::create (sa, &my_readsig, &my_sendsig,
-				     NSIG * sizeof (sigpacket), "sigwait",
+				     _NSIG * sizeof (sigpacket), "sigwait",
 				     PIPE_ADD_PID);
   if (err)
     {
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h
index a6f1428..f8f92d3 100644
--- a/winsup/cygwin/sigproc.h
+++ b/winsup/cygwin/sigproc.h
@@ -10,19 +10,19 @@ details. */
 #include <signal.h>
 #include "sync.h"
 
-#ifdef NSIG
+#ifdef _NSIG
 enum
 {
-  __SIGFLUSH	    = -(NSIG + 1),
-  __SIGSTRACE	    = -(NSIG + 2),
-  __SIGCOMMUNE	    = -(NSIG + 3),
-  __SIGPENDING	    = -(NSIG + 4),
-  __SIGDELETE	    = -(NSIG + 5),	/* Not currently used */
-  __SIGFLUSHFAST    = -(NSIG + 6),
-  __SIGHOLD	    = -(NSIG + 7),
-  __SIGNOHOLD	    = -(NSIG + 8),
-  __SIGSETPGRP	    = -(NSIG + 9),
-  __SIGTHREADEXIT   = -(NSIG + 10)
+  __SIGFLUSH	    = -(_NSIG + 1),
+  __SIGSTRACE	    = -(_NSIG + 2),
+  __SIGCOMMUNE	    = -(_NSIG + 3),
+  __SIGPENDING	    = -(_NSIG + 4),
+  __SIGDELETE	    = -(_NSIG + 5),	/* Not currently used */
+  __SIGFLUSHFAST    = -(_NSIG + 6),
+  __SIGHOLD	    = -(_NSIG + 7),
+  __SIGNOHOLD	    = -(_NSIG + 8),
+  __SIGSETPGRP	    = -(_NSIG + 9),
+  __SIGTHREADEXIT   = -(_NSIG + 10)
 };
 #endif
 
diff --git a/winsup/cygwin/strsig.cc b/winsup/cygwin/strsig.cc
index 6c7bdd3..03f959f 100644
--- a/winsup/cygwin/strsig.cc
+++ b/winsup/cygwin/strsig.cc
@@ -174,7 +174,7 @@ psiginfo (const siginfo_t *info, const char *s)
 
   ADD (strsignal (info->si_signo));
 
-  if (info->si_signo > 0 && info->si_signo < NSIG)
+  if (info->si_signo > 0 && info->si_signo < _NSIG)
     {
       switch (info->si_signo)
 	{



More information about the Cygwin-cvs mailing list