about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog25
-rw-r--r--bits/signum.h63
-rw-r--r--misc/sys/select.h4
-rw-r--r--sysdeps/generic/bits/signum.h63
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigaction.h8
5 files changed, 105 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index 47b39e318a..4df5c2fefa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+1998-11-02 16:12 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
+
+	* sysdeps/generic/bits/signum.h: Define signals with their
+	historical numbers when those are in the 1-15 range and
+	consistent across platforms.
+	Define compatibility aliases (SIGIOT, SIGCLD) if __USE_MISC.
+	Define SIG_DFL, SIG_IGN, SIG_ERR as numeric constants cast
+	appropriately instead of with fake function declarations
+	(would cause link errors).
+	If __USE_UNIX98, define SIG_HOLD.
+
+1998-10-29  H.J. Lu  <hjl@gnu.org>
+
+	* sysdeps/unix/sysv/linux/bits/sigaction.h (sigaction): Use
+	union only if __USE_POSIX199309 is defined.
+
+	* misc/sys/select.h (pselect): Declared only if __USE_GNU is
+	defined.
+
 1998-11-03  Ulrich Drepper  <drepper@cygnus.com>
 
 	* time/mktime.c (__mktime_internal): Handle broken down times
@@ -37,9 +56,9 @@
 
 1998-11-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
 
-        * sysdeps/unix/sysv/linux/netatalk/at.h: Include <linux/atalk.h>
-        before <sys/socket.h> to make sockaddr_at available to
-        <sys/socket.h>.
+	* sysdeps/unix/sysv/linux/netatalk/at.h: Include <linux/atalk.h>
+	before <sys/socket.h> to make sockaddr_at available to
+	<sys/socket.h>.
 
 	* posix/glob.h: Remove __P from parameter lists of declarations.
 
diff --git a/bits/signum.h b/bits/signum.h
index 6b4693f64c..e750125bda 100644
--- a/bits/signum.h
+++ b/bits/signum.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1993, 1996, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,35 +19,46 @@
 #ifdef	_SIGNAL_H
 
 /* Fake signal functions.  */
-extern void _sig_ign __P ((int sig));
-extern void _sig_dfl __P ((int sig));
 
-#define	SIG_ERR	((__sighandler_t) 0) /* Error return.  */
-#define	SIG_DFL	_sig_dfl	/* Default action.  */
-#define	SIG_IGN	_sig_ign	/* Ignore signal.  */
+#define	SIG_ERR	 ((__sighandler_t) -1)	/* Error return.  */
+#define	SIG_DFL	 ((__sighandler_t)  0)	/* Default action.  */
+#define	SIG_IGN	 ((__sighandler_t)  1)	/* Ignore signal.  */
 
+#ifdef __USE_UNIX98
+# define SIG_HOLD ((__sighandler_t)  2)	/* Add signal to hold mask.  */
+#endif
+
+/* Signals in the 1-15 range are defined with their historical numbers.
+   Signals in the 20-25 range are relatively new and have no ingrained
+   numbers. */
 
 /* ANSI signals.  */
-#define	SIGABRT	1	/* Abnormal termination.  */
-#define	SIGFPE	2	/* Erroneous arithmetic operation.  */
-#define	SIGILL	3	/* Illegal instruction.  */
-#define	SIGINT	3	/* Interactive attention signal.  */
-#define	SIGSEGV	4	/* Invalid access to storage.  */
-#define	SIGTERM	5	/* Termination request.  */
-
-/* POSIX signals.  */
-#define	SIGHUP	6	/* Hangup.  */
-#define	SIGQUIT	7	/* Quit.  */
-#define	SIGPIPE	8	/* Broken pipe.  */
+#define	SIGINT	2	/* Interactive attention signal.  */
+#define	SIGILL	4	/* Illegal instruction.  */
+#define	SIGABRT	6	/* Abnormal termination.  */
+#define	SIGFPE	8	/* Erroneous arithmetic operation.  */
+#define	SIGSEGV	11	/* Invalid access to storage.  */
+#define	SIGTERM	15	/* Termination request.  */
+
+/* Historical signals specified by POSIX. */
+#define	SIGHUP	1	/* Hangup.  */
+#define	SIGQUIT	3	/* Quit.  */
 #define	SIGKILL	9	/* Kill (cannot be blocked, caught, or ignored).  */
-#define	SIGALRM	10	/* Alarm clock.  */
-#define	SIGSTOP	11	/* Stop (cannot be blocked, caught, or ignored).  */
-#define	SIGTSTP	12	/* Keyboard stop.  */
-#define	SIGCONT	13	/* Continue.  */
-#define	SIGCHLD	14	/* Child terminated or stopped.  */
-#define	SIGTTIN	15	/* Background read from control terminal.  */
-#define	SIGTTOU	16	/* Background write to control terminal.  */
+#define	SIGPIPE	13	/* Broken pipe.  */
+#define	SIGALRM	14	/* Alarm clock.  */
 
-#endif	/* <signal.h> included.  */
+/* New(er) POSIX signals. */
+#define	SIGSTOP	20	/* Stop (cannot be blocked, caught, or ignored).  */
+#define	SIGCONT	21	/* Continue.  */
+#define	SIGTSTP	22	/* Keyboard stop.  */
+#define	SIGTTIN	23	/* Background read from control terminal.  */
+#define	SIGTTOU	24	/* Background write to control terminal.  */
+#define	SIGCHLD	25	/* Child terminated or stopped.  */
 
-#define	_NSIG	17
+#define	_NSIG	26
+
+/* Archaic names for compatibility. */
+#define	SIGIOT  SIGABRT	/* IOT instruction, abort() on a PDP11 */
+#define	SIGCLD  SIGCHLD	/* Old System V name */
+
+#endif	/* <signal.h> included.  */
diff --git a/misc/sys/select.h b/misc/sys/select.h
index d65e4b07a0..179e1ec59f 100644
--- a/misc/sys/select.h
+++ b/misc/sys/select.h
@@ -75,7 +75,9 @@ extern int select __P ((int __nfds, __fd_set *__readfds,
 			__fd_set *__writefds, __fd_set *__exceptfds,
 			struct timeval *__timeout));
 
-#ifdef __USE_POSIX
+#ifdef __USE_GNU
+/* XXX Once/if POSIX.1g gets official this prototype will be available
+   when defining __USE_POSIX.  */
 /* Same as above only that the TIMEOUT value is given with higher
    resolution.  This version should be used.  */
 extern int pselect __P ((int __nfds, __fd_set *__readfds,
diff --git a/sysdeps/generic/bits/signum.h b/sysdeps/generic/bits/signum.h
index 6b4693f64c..e750125bda 100644
--- a/sysdeps/generic/bits/signum.h
+++ b/sysdeps/generic/bits/signum.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1993, 1996, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,35 +19,46 @@
 #ifdef	_SIGNAL_H
 
 /* Fake signal functions.  */
-extern void _sig_ign __P ((int sig));
-extern void _sig_dfl __P ((int sig));
 
-#define	SIG_ERR	((__sighandler_t) 0) /* Error return.  */
-#define	SIG_DFL	_sig_dfl	/* Default action.  */
-#define	SIG_IGN	_sig_ign	/* Ignore signal.  */
+#define	SIG_ERR	 ((__sighandler_t) -1)	/* Error return.  */
+#define	SIG_DFL	 ((__sighandler_t)  0)	/* Default action.  */
+#define	SIG_IGN	 ((__sighandler_t)  1)	/* Ignore signal.  */
 
+#ifdef __USE_UNIX98
+# define SIG_HOLD ((__sighandler_t)  2)	/* Add signal to hold mask.  */
+#endif
+
+/* Signals in the 1-15 range are defined with their historical numbers.
+   Signals in the 20-25 range are relatively new and have no ingrained
+   numbers. */
 
 /* ANSI signals.  */
-#define	SIGABRT	1	/* Abnormal termination.  */
-#define	SIGFPE	2	/* Erroneous arithmetic operation.  */
-#define	SIGILL	3	/* Illegal instruction.  */
-#define	SIGINT	3	/* Interactive attention signal.  */
-#define	SIGSEGV	4	/* Invalid access to storage.  */
-#define	SIGTERM	5	/* Termination request.  */
-
-/* POSIX signals.  */
-#define	SIGHUP	6	/* Hangup.  */
-#define	SIGQUIT	7	/* Quit.  */
-#define	SIGPIPE	8	/* Broken pipe.  */
+#define	SIGINT	2	/* Interactive attention signal.  */
+#define	SIGILL	4	/* Illegal instruction.  */
+#define	SIGABRT	6	/* Abnormal termination.  */
+#define	SIGFPE	8	/* Erroneous arithmetic operation.  */
+#define	SIGSEGV	11	/* Invalid access to storage.  */
+#define	SIGTERM	15	/* Termination request.  */
+
+/* Historical signals specified by POSIX. */
+#define	SIGHUP	1	/* Hangup.  */
+#define	SIGQUIT	3	/* Quit.  */
 #define	SIGKILL	9	/* Kill (cannot be blocked, caught, or ignored).  */
-#define	SIGALRM	10	/* Alarm clock.  */
-#define	SIGSTOP	11	/* Stop (cannot be blocked, caught, or ignored).  */
-#define	SIGTSTP	12	/* Keyboard stop.  */
-#define	SIGCONT	13	/* Continue.  */
-#define	SIGCHLD	14	/* Child terminated or stopped.  */
-#define	SIGTTIN	15	/* Background read from control terminal.  */
-#define	SIGTTOU	16	/* Background write to control terminal.  */
+#define	SIGPIPE	13	/* Broken pipe.  */
+#define	SIGALRM	14	/* Alarm clock.  */
 
-#endif	/* <signal.h> included.  */
+/* New(er) POSIX signals. */
+#define	SIGSTOP	20	/* Stop (cannot be blocked, caught, or ignored).  */
+#define	SIGCONT	21	/* Continue.  */
+#define	SIGTSTP	22	/* Keyboard stop.  */
+#define	SIGTTIN	23	/* Background read from control terminal.  */
+#define	SIGTTOU	24	/* Background write to control terminal.  */
+#define	SIGCHLD	25	/* Child terminated or stopped.  */
 
-#define	_NSIG	17
+#define	_NSIG	26
+
+/* Archaic names for compatibility. */
+#define	SIGIOT  SIGABRT	/* IOT instruction, abort() on a PDP11 */
+#define	SIGCLD  SIGCHLD	/* Old System V name */
+
+#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h
index 523084bcf3..b357c45342 100644
--- a/sysdeps/unix/sysv/linux/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/bits/sigaction.h
@@ -25,6 +25,7 @@
 struct sigaction
   {
     /* Signal handler.  */
+#ifdef __USE_POSIX199309
     union
       {
 	/* Used if SA_SIGINFO is not set.  */
@@ -33,8 +34,11 @@ struct sigaction
 	void (*sa_sigaction) __PMT ((int, siginfo_t *, void *));
       }
     __sigaction_handler;
-#define sa_handler	__sigaction_handler.sa_handler
-#define sa_sigaction	__sigaction_handler.sa_sigaction
+# define sa_handler	__sigaction_handler.sa_handler
+# define sa_sigaction	__sigaction_handler.sa_sigaction
+#else
+    __sighandler_t sa_handler;
+#endif
 
     /* Additional set of signals to be blocked.  */
     __sigset_t sa_mask;