From 400d5621b84deaacc6d4046d21d4d40b80402786 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 30 Jul 2012 23:35:08 -0700 Subject: [PATCH] Move wait3, WRETCODE from src/s to configure * configure.ac (wait3, WRETCODE): Move here from src/s/usg5-4-common.h. * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them. --- ChangeLog | 2 ++ configure.ac | 17 +++++++++++++++++ src/ChangeLog | 2 ++ src/s/usg5-4-common.h | 9 --------- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index e51d91059ae..d919239e05e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2012-07-31 Glenn Morris + * configure.ac (wait3, WRETCODE): Move here from src/s/usg5-4-common.h. + * configure.ac (opsysfile): Set to empty on hpux*, darwin; and to s/usg5-4-common.h on irix6-5. diff --git a/configure.ac b/configure.ac index fd68e93beb6..3007f79a8b6 100644 --- a/configure.ac +++ b/configure.ac @@ -3645,6 +3645,23 @@ case $opsys in ;; esac +dnl Used in process.c. +case $opsys in + irix6-5 | sol2* | unixware ) + dnl It is possible to receive SIGCHLD when there are no children + dnl waiting, because a previous waitsys(2) cleaned up the carcass + dnl of child without clearing the SIGCHLD pending info. So, use a + dnl non-blocking wait3 instead, which maps to waitpid(2) in SysVr4. + AC_DEFINE(wait3(status, options, rusage), + [waitpid ((pid_t) -1, (status), (options))], + [Some platforms redefine this.]) + dnl FIXME this makes no sense, because WRETCODE is only used in + dnl process.c, which includes syswait.h aftet config.h, and the + dnl former unconditionally redefines WRETCODE. + AC_DEFINE(WRETCODE(w), [(w >> 8)], [Some platforms redefine this.]) + ;; +esac + case $opsys in hpux* | sol2* ) diff --git a/src/ChangeLog b/src/ChangeLog index cd146728208..12afc8d080d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -8,6 +8,8 @@ 2012-07-31 Glenn Morris + * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them. + * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here. * s/irix6-5.h: Remove file. diff --git a/src/s/usg5-4-common.h b/src/s/usg5-4-common.h index 05f22143460..1b545aad1ce 100644 --- a/src/s/usg5-4-common.h +++ b/src/s/usg5-4-common.h @@ -33,12 +33,3 @@ along with GNU Emacs. If not, see . */ #include #include #endif - -/* It is possible to receive SIGCHLD when there are no children - waiting, because a previous waitsys(2) cleaned up the carcass of child - without clearing the SIGCHLD pending info. So, use a non-blocking - wait3 instead, which maps to waitpid(2) in SysVr4. */ -#define wait3(status, options, rusage) \ - waitpid ((pid_t) -1, (status), (options)) -#define WRETCODE(w) (w >> 8) - -- 2.39.2