Merge "Switch to current OpenBSD system.c."
diff --git a/libc/Android.mk b/libc/Android.mk
index 9ab7e8e..e401a1c 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -106,7 +106,6 @@
stdlib/strtod.c \
unistd/alarm.c \
unistd/syslog.c \
- unistd/system.c \
unistd/time.c \
# Fortify implementations of libc functions.
@@ -388,6 +387,7 @@
upstream-openbsd/lib/libc/stdlib/strtoumax.c \
upstream-openbsd/lib/libc/stdlib/strtoll.c \
upstream-openbsd/lib/libc/stdlib/strtol.c \
+ upstream-openbsd/lib/libc/stdlib/system.c \
upstream-openbsd/lib/libc/locale/wcsxfrm.c \
libc_arch_static_src_files := \
diff --git a/libc/unistd/system.c b/libc/upstream-openbsd/lib/libc/stdlib/system.c
similarity index 91%
rename from libc/unistd/system.c
rename to libc/upstream-openbsd/lib/libc/stdlib/system.c
index 72cc37e..14ddcae 100644
--- a/libc/unistd/system.c
+++ b/libc/upstream-openbsd/lib/libc/stdlib/system.c
@@ -29,18 +29,18 @@
*/
#include <sys/types.h>
+#include <sys/wait.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <paths.h>
-#include <sys/wait.h>
extern char **environ;
int
system(const char *command)
{
- pid_t pid;
+ pid_t pid;
sig_t intsave, quitsave;
sigset_t mask, omask;
int pstat;
@@ -61,14 +61,14 @@
case 0: /* child */
sigprocmask(SIG_SETMASK, &omask, NULL);
execve(_PATH_BSHELL, argp, environ);
- _exit(127);
- }
+ _exit(127);
+ }
- intsave = (sig_t) bsd_signal(SIGINT, SIG_IGN);
- quitsave = (sig_t) bsd_signal(SIGQUIT, SIG_IGN);
+ intsave = signal(SIGINT, SIG_IGN);
+ quitsave = signal(SIGQUIT, SIG_IGN);
pid = waitpid(pid, (int *)&pstat, 0);
sigprocmask(SIG_SETMASK, &omask, NULL);
- (void)bsd_signal(SIGINT, intsave);
- (void)bsd_signal(SIGQUIT, quitsave);
+ (void)signal(SIGINT, intsave);
+ (void)signal(SIGQUIT, quitsave);
return (pid == -1 ? -1 : pstat);
}