mescc: Support GNU make with POSIX.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 10 Nov 2018 07:32:42 +0000 (08:32 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 10 Nov 2018 07:32:42 +0000 (08:32 +0100)
* include/linux/x86/syscall.h (SYS_sigprocmask): New macro.
* include/linux/x86_64/syscall.h (SYS_rt_sigprocmask): New macro.
* include/signal.h (SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK): New macro.
(sigprocmask): Declare.
* lib/linux/gnu.c (sigprocmask): New function.

include/linux/x86/syscall.h
include/linux/x86_64/syscall.h
include/signal.h
include/unistd.h
lib/linux/gnu.c

index dd063c82446eeff230dd3a6c25d4d3b0a1c20810..4414d3c1146a9d3143f46a187d2ad4a7ed47269e 100644 (file)
@@ -79,4 +79,7 @@
 #define SYS_getegid   0x32
 #define SYS_setgid    0x3e
 
+// make+POSIX
+#define SYS_sigprocmask 0x7e
+
 #endif // __MES_LINUX_X86_SYSCALL_H
index fddce5c4d44bba9af119e5c42b5d66f0e538863f..0c73df784b57cd0341ff28e26e24d34cf221bf28 100644 (file)
@@ -75,4 +75,7 @@
 #define SYS_geteuid   0x6b
 #define SYS_getegid   0x6c
 
+// make+POSIX
+#define SYS_rt_sigprocmask 0x0e
+
 #endif // __MES_LINUX_X86_64_SYSCALL_H
index 21079bac9291f4fbc0bf065ca6cb3084687e9b57..bfb18b1c518545456d3b8bbd9a3f076553dcad60 100644 (file)
@@ -228,6 +228,12 @@ void* signal (int signum, void * action);
 sighandler_t signal (int signum, sighandler_t action);
 #endif
 int sigemptyset (sigset_t *set);
+#ifndef SIG_BLOCK
+#define SIG_BLOCK 0
+#define SIG_UNBLOCK 1
+#define SIG_SETMASK 2
+#endif
+int sigprocmask (int how, sigset_t const *set, sigset_t *oldset);
 
 #endif //! WITH_GLIBC
 
index d6c218e4ffcbdae277a60c51362d1af2db0ea2b8..8810cbf493e9f3ede1632336acda868cc7daaf3e 100644 (file)
@@ -29,7 +29,9 @@
 
 #else // ! WITH_GLIBC
 
+#if defined (BOOTSTRAP_WITH_POSIX)
 #define _POSIX_VERSION 199009L
+#endif
 
 #include <sys/types.h>
 #ifndef NULL
index bd914d2879f2920453b89e87351591e869727905..753713fffe2104ec89d7d719f3391f9261253c8c 100644 (file)
@@ -198,3 +198,14 @@ setgid (gid_t newgid)
 {
   return _sys_call1 (SYS_setgid, (long)newgid);
 }
+
+// make+POSIX
+int
+sigprocmask (int how, sigset_t const *set, sigset_t *oldset)
+{
+#if __i386__
+  return _sys_call3 (SYS_sigprocmask, (long)how, (long)set, (long)oldset);
+#else
+  return _sys_call3 (SYS_rt_sigprocmask, (long)how, (long)set, (long)oldset);
+#endif
+}