[committed 2/2] newlib cris: Fix compilation warnings that recent gcc treats as errors

Hans-Peter Nilsson <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
For the newlib part, warnings are all from lack of sync between
libc/machine/cris/sys/signal.h and libc/include/sys/signal.h.  This
commit gets them sufficiently in sync again, functionality-wise and
declaration-wise.  Still, nothing is declared that isn't supported at
the system level (i.e. in libgloss system calls and handled by the
CRIS simulator in the gdb project).
---
 newlib/libc/machine/cris/sys/signal.h | 43 +++++++++++++++++++++++----
 1 file changed, 37 insertions(+), 6 deletions(-)

diff --git a/newlib/libc/machine/cris/sys/signal.h b/newlib/libc/machine/cris/sys/signal.h
index 9cb7ba5303a4..7b6f3fa9bc82 100644
--- a/newlib/libc/machine/cris/sys/signal.h
+++ b/newlib/libc/machine/cris/sys/signal.h
@@ -12,6 +12,8 @@ extern "C" {
 #endif
 
 #include "_ansi.h"
+#include <sys/features.h>
+#include <sys/types.h>
 
 typedef unsigned long sigset_t;
 
@@ -32,21 +34,50 @@ struct sigaction {
 
 /* Adjusted to glibc; other values.  */
 #define SA_NOCLDSTOP 1	/* only value supported now for sa_flags */
+
+#if __POSIX_VISIBLE
 #define SIG_SETMASK 2	/* set mask with sigprocmask() */
 #define SIG_BLOCK 0	/* set of signals to block */
 #define SIG_UNBLOCK 1	/* set of signals to, well, unblock */
 
+int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b);
+#endif	/* __POSIX_VISIBLE */
+
+#ifdef _LIBC
+int _kill (pid_t, int);
+#endif
+
+#if __POSIX_VISIBLE
+
+int kill (pid_t, int);
+int sigaddset (sigset_t *, const int);
+int sigdelset (sigset_t *, const int);
+int sigismember (const sigset_t *, int);
+int sigfillset (sigset_t *);
+int sigemptyset (sigset_t *);
+
 /* These depend upon the type of sigset_t, which right now
    is always a long.. They're in the POSIX namespace, but
    are not ANSI. */
-#define sigaddset(what,sig) (*(what) |= (1<<(sig)))
-#define sigemptyset(what)   (*(what) = 0)
+#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0)
+#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0)
+#define sigemptyset(what)   (*(what) = 0, 0)
+#define sigfillset(what)    (*(what) = ~(0), 0)
+#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0)
 
-int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b);
+#endif	/* __POSIX_VISIBLE */
+
+/* Using __MISC_VISIBLE until POSIX Issue 8 is officially released */
+#if __MISC_VISIBLE
+
+/* POSIX Issue 8 adds sig2str() and str2sig() */
+
+#define SIG2STR_MAX 17	/* (sizeof("RTMAX+") + sizeof("4294967295") - 1) */
+
+int sig2str(int, char *);
+int str2sig(const char *__restrict, int *__restrict);
 
-/* The first argument is really a pid_t, but that's just a typedef'd
-   int, so let's avoid requiring sys/types only for this declaration.  */
-int kill (int, int);
+#endif /* __MISC_VISIBLE */
 
 #define SIGHUP		 1
 #define SIGINT		 2
-- 
2.30.2


brgds, H-P
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.