aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--configure.in2
-rw-r--r--process.c3
3 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 657b353d48..692d9dc66a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jul 4 13:56:34 2016 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * process.c: define sig_t if not exist.
+ at least Solaris 10 and 11 doesn't have sig_t.
+
Mon Jul 4 13:08:48 2016 NARUSE, Yui <naruse@ruby-lang.org>
* random.c (random_ulong_limited): avoid left shift count >= width of
diff --git a/configure.in b/configure.in
index 8232d548a0..580e5d11ba 100644
--- a/configure.in
+++ b/configure.in
@@ -2883,6 +2883,8 @@ main()
fi
fi
+AC_CHECK_TYPES([sig_t],[],[],[@%:@include <signal.h>])
+
if test "$ac_cv_func_getpgid" = no; then
# AC_FUNC_GETPGRP fails when cross-compiling with old autoconf.
# autoconf is changed between 2.52d and 2.52f?
diff --git a/process.c b/process.c
index 2938b9f578..905ec0e755 100644
--- a/process.c
+++ b/process.c
@@ -253,6 +253,9 @@ typedef unsigned long unsigned_clock_t;
#elif defined(HAVE_LONG_LONG) && SIZEOF_CLOCK_T == SIZEOF_LONG_LONG
typedef unsigned LONG_LONG unsigned_clock_t;
#endif
+#ifdef HAVE_SIG_T
+typedef void (*sig_t) (int);
+#endif
static ID id_in, id_out, id_err, id_pid, id_uid, id_gid;
static ID id_close, id_child;