summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Gran <spk121@yahoo.com>2022-10-08 05:47:00 -0700
committerMike Gran <spk121@yahoo.com>2022-10-14 08:40:23 -0700
commitd3261e84975a17134443cf9aabbbdd741d012eeb (patch)
tree859ddcb433c377a195c936bb72792e38189541c3
parent2b73ef4deb7df9e42fd776f1ab334540d047af7d (diff)
downloadguile-d3261e84975a17134443cf9aabbbdd741d012eeb.tar.gz
Presumes signal handler return void
Since Guile requires a C99 compiler, we can rely on signal handlers returning void, not int. * configure.ac: remove AC_TYPE_SIGNAL * libguile/scmsigs.c (SIGRETTYPE): remove SIGRETTYPE (take_signal): returns void (scm_sigaction_for_thread): presumes handlers return void
-rw-r--r--configure.ac1
-rw-r--r--libguile/scmsigs.c24
2 files changed, 7 insertions, 18 deletions
diff --git a/configure.ac b/configure.ac
index d93c70b24..52a844fe8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -444,7 +444,6 @@ AC_CHECK_TYPE(socklen_t, ,
AC_CHECK_TYPES([struct ip_mreq], , , [#include <netinet/in.h>])
AC_TYPE_GETGROUPS
-AC_TYPE_SIGNAL
AC_TYPE_MODE_T
dnl Check whether we need -lm.
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c
index 5b8ffaf80..975d2bd18 100644
--- a/libguile/scmsigs.c
+++ b/libguile/scmsigs.c
@@ -62,16 +62,6 @@
-/* SIGRETTYPE is the type that signal handlers return. See <signal.h> */
-
-#ifdef RETSIGTYPE
-# define SIGRETTYPE RETSIGTYPE
-#else
-# define SIGRETTYPE void
-#endif
-
-
-
/* take_signal is installed as the C signal handler whenever a Scheme
handler is set. When a signal arrives, take_signal will write a
byte into the 'signal pipe'. The 'signal delivery thread' will
@@ -108,7 +98,7 @@ static scm_i_pthread_mutex_t signal_delivery_thread_mutex =
#ifdef HAVE_SIGACTION
static struct sigaction orig_handlers[NSIG];
#else
-static SIGRETTYPE (*orig_handlers[NSIG])(int);
+static void (*orig_handlers[NSIG])(int);
#endif
static SCM
@@ -130,7 +120,7 @@ close_1 (SCM proc, SCM arg)
static int signal_pipe[2];
-static SIGRETTYPE
+static void
take_signal (int signum)
{
int old_errno = errno;
@@ -235,7 +225,7 @@ scm_i_ensure_signal_delivery_thread ()
#else /* !SCM_USE_PTHREAD_THREADS */
-static SIGRETTYPE
+static void
take_signal (int signum)
{
SCM cell = SCM_SIMPLE_VECTOR_REF (signal_handler_asyncs, signum);
@@ -321,8 +311,8 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0,
struct sigaction action;
struct sigaction old_action;
#else
- SIGRETTYPE (* chandler) (int) = SIG_DFL;
- SIGRETTYPE (* old_chandler) (int);
+ void (* chandler) (int) = SIG_DFL;
+ void (* old_chandler) (int);
#endif
int query_only = 0;
int save_handler = 0;
@@ -359,9 +349,9 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0,
if (handler_int == (long) SIG_DFL || handler_int == (long) SIG_IGN)
{
#ifdef HAVE_SIGACTION
- action.sa_handler = (SIGRETTYPE (*) (int)) handler_int;
+ action.sa_handler = (void (*) (int)) handler_int;
#else
- chandler = (SIGRETTYPE (*) (int)) handler_int;
+ chandler = (void (*) (int)) handler_int;
#endif
install_handler (csig, SCM_BOOL_F, SCM_BOOL_F);
}