summaryrefslogtreecommitdiff
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;