Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2023-12-02 04:20:17 +0300
committerHans-Peter Nilsson <hp@bitrange.com>2023-12-06 20:46:49 +0300
commit3bafe2fae7a0878598a82777c623edb2faa70b74 (patch)
treec800b69ec4b2987bd526548f7ff2f3832ec6e5f7 /newlib
parent7cce4cdd6e53abb1e89a871fc7511f0d8563d483 (diff)
newlib cris: Fix compilation warnings that recent gcc treats as errors
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).
Diffstat (limited to 'newlib')
-rw-r--r--newlib/libc/machine/cris/sys/signal.h43
1 files changed, 37 insertions, 6 deletions
diff --git a/newlib/libc/machine/cris/sys/signal.h b/newlib/libc/machine/cris/sys/signal.h
index 9cb7ba530..7b6f3fa9b 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