additional fixes for linux kernel apis with old syscalls removed

This commit is contained in:
Rich Felker
2014-05-30 01:51:23 -04:00
parent 55f45bc722
commit 5cf9e8f860
2 changed files with 9 additions and 0 deletions

View File

@ -1,12 +1,17 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#include <unistd.h> #include <unistd.h>
#include <signal.h>
#include "syscall.h" #include "syscall.h"
#include "libc.h" #include "libc.h"
pid_t __vfork(void) pid_t __vfork(void)
{ {
/* vfork syscall cannot be made from C code */ /* vfork syscall cannot be made from C code */
#ifdef SYS_fork
return syscall(SYS_fork); return syscall(SYS_fork);
#else
return syscall(SYS_clone, SIGCHLD, 0);
#endif
} }
weak_alias(__vfork, vfork); weak_alias(__vfork, vfork);

View File

@ -14,7 +14,11 @@ int fstat(int fd, struct stat *st)
char buf[15+3*sizeof(int)]; char buf[15+3*sizeof(int)];
__procfdname(buf, fd); __procfdname(buf, fd);
#ifdef SYS_stat
return syscall(SYS_stat, buf, st); return syscall(SYS_stat, buf, st);
#else
return syscall(SYS_fstatat, AT_FDCWD, buf, st);
#endif
} }
LFS64(fstat); LFS64(fstat);