summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2012-08-01 21:14:48 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2012-08-01 21:14:48 -0700
commit13294f95172c68a5e77143f917231e0f17f37537 (patch)
tree64d703087135fe71be44b267ca9d105ede888cc9
parent90df0db330dc6d168bf8cdb950a066a2916857ad (diff)
downloademacs-13294f95172c68a5e77143f917231e0f17f37537.tar.gz
Port to Solaris 8.
Without this change, 'configure' fails because the recently-added wait3 prototype in config.h messes up later 'configure' tests. Fix this problem by droping wait3 and WRETCODE, as they're no longer needed on hosts that are current porting targets. * configure.ac (wait3, WRETCODE): Remove, fixing a FIXME. All uses changed to waitpid and WEXITSTATUS. * src/syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
-rw-r--r--ChangeLog8
-rw-r--r--admin/CPP-DEFINES1
-rw-r--r--admin/ChangeLog5
-rw-r--r--configure.ac17
-rw-r--r--lib-src/movemail.c4
-rw-r--r--src/ChangeLog5
-rw-r--r--src/process.c14
-rw-r--r--src/sysdep.c2
-rw-r--r--src/syswait.h5
-rw-r--r--src/w32proc.c2
10 files changed, 29 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index 943d88822db..21d1d25d6de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
+ Port to Solaris 8.
+ Without this change, 'configure' fails because the recently-added
+ wait3 prototype in config.h messes up later 'configure' tests.
+ Fix this problem by droping wait3 and WRETCODE, as they're
+ no longer needed on hosts that are current porting targets.
+ * configure.ac (wait3, WRETCODE): Remove, fixing a FIXME.
+ All uses changed to waitpid and WEXITSTATUS.
+
Avoid needless autoheader after autogen.sh.
* src/stamp-h.in: Remove from bzr repository; no longer needed there.
* .bzrignore: Add it.
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index 47963edecab..f020a7d3a3f 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -227,7 +227,6 @@ USG
USG5
USG_SUBTTY_WORKS
VALBITS
-WRETCODE
XOS_NEEDS_TIME_H
_AIX
_ARCH_PPC64
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 54ac7b4edd7..bc1b4247d3f 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to Solaris 8.
+ * CPP-DEFINES (WRETCODE): Remove.
+
2012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
* coccinelle/overlay.cocci: Semantic patch to replace direct
diff --git a/configure.ac b/configure.ac
index 24a0bae56b8..a80cb37bc11 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3692,23 +3692,6 @@ 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/lib-src/movemail.c b/lib-src/movemail.c
index d157aa8c0b9..c87d97778d1 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -560,8 +560,8 @@ main (int argc, char **argv)
wait (&wait_status);
if (!WIFEXITED (wait_status))
exit (EXIT_FAILURE);
- else if (WRETCODE (wait_status) != 0)
- exit (WRETCODE (wait_status));
+ else if (WEXITSTATUS (wait_status) != 0)
+ exit (WEXITSTATUS (wait_status));
#if !defined (MAIL_USE_MMDF) && !defined (MAIL_USE_SYSTEM_LOCK)
#ifdef MAIL_USE_MAILLOCK
diff --git a/src/ChangeLog b/src/ChangeLog
index e10550957c8..50c6d18e242 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ Port to Solaris 8.
+ * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
+
2012-08-02 Glenn Morris <rgm@gnu.org>
* nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
diff --git a/src/process.c b/src/process.c
index 47f10814333..2d2a1b5ac0e 100644
--- a/src/process.c
+++ b/src/process.c
@@ -441,7 +441,7 @@ status_convert (int w)
if (WIFSTOPPED (w))
return Fcons (Qstop, Fcons (make_number (WSTOPSIG (w)), Qnil));
else if (WIFEXITED (w))
- return Fcons (Qexit, Fcons (make_number (WRETCODE (w)),
+ return Fcons (Qexit, Fcons (make_number (WEXITSTATUS (w)),
WCOREDUMP (w) ? Qt : Qnil));
else if (WIFSIGNALED (w))
return Fcons (Qsignal, Fcons (make_number (WTERMSIG (w)),
@@ -4287,7 +4287,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
FD_ZERO (&Writeok);
if (time_limit == 0 && nsecs == 0 && wait_proc && !NILP (Vinhibit_quit)
- && !(CONSP (PVAR (wait_proc, status))
+ && !(CONSP (PVAR (wait_proc, status))
&& EQ (XCAR (PVAR (wait_proc, status)), Qexit)))
message ("Blocking call to accept-process-output with quit inhibited!!");
@@ -4887,7 +4887,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
if (p->pid == -2)
{
/* If the EIO occurs on a pty, sigchld_handler's
- wait3() will not find the process object to
+ waitpid() will not find the process object to
delete. Do it here. */
p->tick = ++process_tick;
PVAR (p, status) = Qfailed;
@@ -4959,7 +4959,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
if (xerrno)
{
p->tick = ++process_tick;
- PVAR (p, status)
+ PVAR (p, status)
= Fcons (Qfailed, Fcons (make_number (xerrno), Qnil));
deactivate_process (proc);
}
@@ -6352,7 +6352,7 @@ sigchld_handler (int signo)
do
{
errno = 0;
- pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
+ pid = waitpid (-1, &w, WNOHANG | WUNTRACED);
}
while (pid < 0 && errno == EINTR);
@@ -6440,7 +6440,7 @@ sigchld_handler (int signo)
/* Report the status of the synchronous process. */
if (WIFEXITED (w))
- synch_process_retcode = WRETCODE (w);
+ synch_process_retcode = WEXITSTATUS (w);
else if (WIFSIGNALED (w))
synch_process_termsig = WTERMSIG (w);
@@ -6746,7 +6746,7 @@ suppressed. */)
CHECK_PROCESS (process);
p = XPROCESS (process);
if (NILP (flag))
- PVAR (p, decode_coding_system)
+ PVAR (p, decode_coding_system)
= raw_text_coding_system (PVAR (p, decode_coding_system));
setup_process_coding_systems (process);
diff --git a/src/sysdep.c b/src/sysdep.c
index 2bfdb35fdfb..597228c3de6 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -294,7 +294,7 @@ wait_for_termination_1 (pid_t pid, int interruptible)
#if (defined (BSD_SYSTEM) || defined (HPUX)) && !defined (__GNU__)
/* Note that kill returns -1 even if the process is just a zombie now.
But inevitably a SIGCHLD interrupt should be generated
- and child_sig will do wait3 and make the process go away. */
+ and child_sig will do waitpid and make the process go away. */
/* There is some indication that there is a bug involved with
termination of subprocesses, perhaps involving a kernel bug too,
but no idea what it is. Just as a hunch we signal SIGCHLD to see
diff --git a/src/syswait.h b/src/syswait.h
index aea9ea6e588..9d84876d4be 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -51,9 +51,4 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define WTERMSIG(status) ((status) & 0x7f)
#endif
-#undef WRETCODE
-#define WRETCODE(status) WEXITSTATUS (status)
-
-
#endif /* EMACS_SYSWAIT_H */
-
diff --git a/src/w32proc.c b/src/w32proc.c
index cfc82fa2c47..33aed5eb8e3 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -549,7 +549,7 @@ get_result:
/* Report the status of the synchronous process. */
if (WIFEXITED (retval))
- synch_process_retcode = WRETCODE (retval);
+ synch_process_retcode = WEXITSTATUS (retval);
else if (WIFSIGNALED (retval))
{
int code = WTERMSIG (retval);