diff options
Diffstat (limited to 'newlib/libc/sys/linux')
-rw-r--r-- | newlib/libc/sys/linux/Makefile.in | 3 | ||||
-rw-r--r-- | newlib/libc/sys/linux/machine/Makefile.in | 3 | ||||
-rw-r--r-- | newlib/libc/sys/linux/machine/i386/Makefile.in | 3 | ||||
-rw-r--r-- | newlib/libc/sys/linux/process.c | 21 |
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 (;;) |