summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/linux
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/linux')
-rw-r--r--newlib/libc/sys/linux/Makefile.in3
-rw-r--r--newlib/libc/sys/linux/machine/Makefile.in3
-rw-r--r--newlib/libc/sys/linux/machine/i386/Makefile.in3
-rw-r--r--newlib/libc/sys/linux/process.c21
4 files changed, 26 insertions, 4 deletions
diff --git a/newlib/libc/sys/linux/Makefile.in b/newlib/libc/sys/linux/Makefile.in
index 4b7df11c6..37b2bd2fd 100644
--- a/newlib/libc/sys/linux/Makefile.in
+++ b/newlib/libc/sys/linux/Makefile.in
@@ -285,7 +285,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \
- ../../../acinclude.m4 ../../../aclocal.m4
+ ../../../acinclude.m4 ../../../aclocal.m4 \
+ ../../../libtool.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
diff --git a/newlib/libc/sys/linux/machine/Makefile.in b/newlib/libc/sys/linux/machine/Makefile.in
index 4965a120e..d56668de1 100644
--- a/newlib/libc/sys/linux/machine/Makefile.in
+++ b/newlib/libc/sys/linux/machine/Makefile.in
@@ -125,7 +125,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \
- ../../../../acinclude.m4 ../../../../aclocal.m4
+ ../../../../acinclude.m4 ../../../../aclocal.m4 \
+ ../../../../libtool.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
diff --git a/newlib/libc/sys/linux/machine/i386/Makefile.in b/newlib/libc/sys/linux/machine/i386/Makefile.in
index ac6d9589b..d13405a18 100644
--- a/newlib/libc/sys/linux/machine/i386/Makefile.in
+++ b/newlib/libc/sys/linux/machine/i386/Makefile.in
@@ -158,7 +158,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \
- ../../../../../acinclude.m4 ../../../../../aclocal.m4
+ ../../../../../acinclude.m4 ../../../../../aclocal.m4 \
+ ../../../../../libtool.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
diff --git a/newlib/libc/sys/linux/process.c b/newlib/libc/sys/linux/process.c
index 0419ec7ef..8ae58b0c5 100644
--- a/newlib/libc/sys/linux/process.c
+++ b/newlib/libc/sys/linux/process.c
@@ -4,6 +4,7 @@
#include <sys/unistd.h>
+#include <sys/wait.h>
#include <machine/syscall.h>
@@ -11,7 +12,6 @@
#define __NR__execve __NR_execve
_syscall0(int,fork)
-_syscall0(pid_t,vfork)
_syscall3(int,_execve,const char *,file,char * const *,argv,char * const *,envp)
_syscall0(int,getpid)
_syscall2(int,setpgid,pid_t,pid,pid_t,pgid)
@@ -21,6 +21,25 @@ _syscall0(pid_t,setsid)
weak_alias(__libc_getpid,__getpid);
+pid_t vfork(void)
+{
+ pid_t pid;
+
+ pid = fork();
+
+ if(!pid)
+ {
+ /* In child. */
+ return 0;
+ }
+ else
+ {
+ /* In parent. Wait for child to finish. */
+ if (waitpid (pid, NULL, 0) < 0)
+ return pid;
+ }
+}
+
/* FIXME: get rid of noreturn warning */
#define return for (;;)