فهرست منبع

internal sigpause, do we really default to BSD signals?

Peter S. Mazinger 19 سال پیش
والد
کامیت
6a2a30ccc6

+ 1 - 0
libc/inet/rpc/rcmd.c

@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)rcmd.c	8.3 (Berkeley) 3/26/94";
 #define herror __herror
 #define bind __bind
 #define connect __connect
+#define sigblock __sigblock
 
 #define __FORCE_GLIBC
 #include <features.h>

+ 1 - 1
libc/signal/sigblock.c

@@ -22,7 +22,7 @@
 #include "sigset-cvt-mask.h"
 
 /* Block signals in MASK, returning the old mask.  */
-int __sigblock (int mask)
+int attribute_hidden __sigblock (int mask)
 {
   sigset_t set, oset;
 

+ 1 - 1
libc/signal/siggetmask.c

@@ -19,7 +19,7 @@
 
 #include <signal.h>
 
-extern int __sigblock (int __mask);
+extern int __sigblock (int __mask) __THROW __attribute_deprecated__ attribute_hidden;
 int
 siggetmask (void)
 {

+ 1 - 0
libc/signal/signal.c

@@ -52,4 +52,5 @@ __bsd_signal (int sig, __sighandler_t handler)
   return oact.sa_handler;
 }
 weak_alias (__bsd_signal, bsd_signal)
+hidden_weak_alias (__bsd_signal, __signal)
 weak_alias (__bsd_signal, signal)

+ 4 - 3
libc/signal/sigpause.c

@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #define sigdelset __sigdelset_internal
+#define sigsuspend __sigsuspend
 
 #include <errno.h>
 #include <signal.h>
@@ -27,7 +28,7 @@
 
 /* Set the mask of blocked signals to MASK,
    wait for a signal to arrive, and then restore the mask.  */
-int __sigpause (int sig_or_mask, int is_sig)
+int attribute_hidden __sigpause_internal (int sig_or_mask, int is_sig)
 {
   sigset_t set;
 
@@ -44,7 +45,7 @@ int __sigpause (int sig_or_mask, int is_sig)
 
   return sigsuspend (&set);
 }
-
+strong_alias(__sigpause_internal,__sigpause)
 
 #undef sigpause
 
@@ -53,5 +54,5 @@ int __sigpause (int sig_or_mask, int is_sig)
    the BSD version.  So make this the default.  */
 int sigpause (int mask)
 {
-  return __sigpause (mask, 0);
+  return __sigpause_internal (mask, 0);
 }

+ 2 - 0
libc/signal/sigwait.c

@@ -18,6 +18,8 @@
  * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  * 02111-1307 USA.  */
 
+#define sigwaitinfo __sigwaitinfo
+
 #include <errno.h>
 #include <signal.h>
 #include <string.h>

+ 1 - 0
libc/stdlib/system.c

@@ -1,5 +1,6 @@
 #define wait4 __wait4
 #define execl __execl
+#define signal __signal
 
 #include <stdio.h>
 #include <stddef.h>

+ 4 - 6
libc/sysdeps/linux/common/pause.c

@@ -7,22 +7,20 @@
  * GNU Library General Public License (LGPL) version 2 or later.
  */
 
+#define __sigpause __sigpause_internal
+#define sigblock __sigblock
+
 #include "syscalls.h"
 #include <unistd.h>
 
 #ifdef __NR_pause
-
 #define __NR___libc_pause __NR_pause
 _syscall0(int, __libc_pause);
-weak_alias(__libc_pause, pause);
-
 #else
-
 #include <signal.h>
 int __libc_pause(void)
 {
 	return (__sigpause(sigblock(0), 0));
 }
-weak_alias(__libc_pause, pause);
-
 #endif
+weak_alias(__libc_pause, pause)