diff -burN musl-1.1.21.org/src/fcntl/fcntl.c musl-1.1.21/src/fcntl/fcntl.c --- musl-1.1.21.org/src/fcntl/fcntl.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/fcntl/fcntl.c 2019-04-10 13:53:46.979931879 +0200 @@ -1,16 +1,12 @@ #define _GNU_SOURCE +#define fcntl undef_fcntl #include -#include #include #include "syscall.h" +#undef fcntl -int fcntl(int fd, int cmd, ...) +int fcntl(int fd, int cmd, unsigned long arg) { - unsigned long arg; - va_list ap; - va_start(ap, cmd); - arg = va_arg(ap, unsigned long); - va_end(ap); if (cmd == F_SETFL) arg |= O_LARGEFILE; if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, (void *)arg); if (cmd == F_GETOWN) { diff -burN musl-1.1.21.org/src/fcntl/openat.c musl-1.1.21/src/fcntl/openat.c --- musl-1.1.21.org/src/fcntl/openat.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/fcntl/openat.c 2019-04-10 13:53:58.088037210 +0200 @@ -1,18 +1,10 @@ +#define openat undef_openat #include -#include #include "syscall.h" +#undef openat -int openat(int fd, const char *filename, int flags, ...) +int openat(int fd, const char *filename, int flags, mode_t mode) { - mode_t mode = 0; - - if ((flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - return syscall_cp(SYS_openat, fd, filename, flags|O_LARGEFILE, mode); } diff -burN musl-1.1.21.org/src/fcntl/open.c musl-1.1.21/src/fcntl/open.c --- musl-1.1.21.org/src/fcntl/open.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/fcntl/open.c 2019-04-10 13:53:53.939997879 +0200 @@ -1,18 +1,10 @@ +#define open undef_open #include -#include #include "syscall.h" +#undef open -int open(const char *filename, int flags, ...) +int open(const char *filename, int flags, mode_t mode) { - mode_t mode = 0; - - if ((flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE) { - va_list ap; - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - } - int fd = __sys_open_cp(filename, flags, mode); if (fd>=0 && (flags & O_CLOEXEC)) __syscall(SYS_fcntl, fd, F_SETFD, FD_CLOEXEC); diff -burN musl-1.1.21.org/src/legacy/ulimit.c musl-1.1.21/src/legacy/ulimit.c --- musl-1.1.21.org/src/legacy/ulimit.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/legacy/ulimit.c 2019-04-10 14:03:23.113362412 +0200 @@ -1,17 +1,13 @@ +#define ulimit undef_ulimit #include #include -#include +#undef ulimit -long ulimit(int cmd, ...) +long ulimit(int cmd, long val) { struct rlimit rl; getrlimit(RLIMIT_FSIZE, &rl); if (cmd == UL_SETFSIZE) { - long val; - va_list ap; - va_start(ap, cmd); - val = va_arg(ap, long); - va_end(ap); rl.rlim_cur = 512ULL * val; if (setrlimit(RLIMIT_FSIZE, &rl)) return -1; } diff -burN musl-1.1.21.org/src/linux/clone.c musl-1.1.21/src/linux/clone.c --- musl-1.1.21.org/src/linux/clone.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/linux/clone.c 2019-04-10 14:00:41.015839619 +0200 @@ -1,21 +1,13 @@ #define _GNU_SOURCE -#include +#define clone undef_clone #include #include #include "pthread_impl.h" #include "syscall.h" +#undef clone -int clone(int (*func)(void *), void *stack, int flags, void *arg, ...) +int clone(int (*func)(void *), void *stack, int flags, void *arg, + pid_t *ptid, void *tls, pid_t *ctid) { - va_list ap; - pid_t *ptid, *ctid; - void *tls; - - va_start(ap, arg); - ptid = va_arg(ap, pid_t *); - tls = va_arg(ap, void *); - ctid = va_arg(ap, pid_t *); - va_end(ap); - return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid)); } diff -burN musl-1.1.21.org/src/linux/prctl.c musl-1.1.21/src/linux/prctl.c --- musl-1.1.21.org/src/linux/prctl.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/linux/prctl.c 2019-04-10 13:57:26.570008404 +0200 @@ -1,14 +1,9 @@ +#define prctl undef_prctl #include -#include #include "syscall.h" +#undef prctl -int prctl(int op, ...) +int prctl(int op, unsigned long x0, unsigned long x1, unsigned long x2, unsigned long x3) { - unsigned long x[4]; - int i; - va_list ap; - va_start(ap, op); - for (i=0; i<4; i++) x[i] = va_arg(ap, unsigned long); - va_end(ap); - return syscall(SYS_prctl, op, x[0], x[1], x[2], x[3]); + return syscall(SYS_prctl, op, x0, x1, x2, x3); } diff -burN musl-1.1.21.org/src/linux/ptrace.c musl-1.1.21/src/linux/ptrace.c --- musl-1.1.21.org/src/linux/ptrace.c 2019-04-10 13:35:43.589279396 +0200 +++ musl-1.1.21/src/linux/ptrace.c 2019-04-10 14:01:09.280105349 +0200 @@ -1,26 +1,13 @@ +#define ptrace undef_ptrace #include -#include #include #include "syscall.h" +#undef ptrace -long ptrace(int req, ...) +long ptrace(int req, pid_t pid, void *addr, void *data, void *addr2) { - va_list ap; - pid_t pid; - void *addr, *data, *addr2 = 0; long ret, result; - va_start(ap, req); - pid = va_arg(ap, pid_t); - addr = va_arg(ap, void *); - data = va_arg(ap, void *); - /* PTRACE_{READ,WRITE}{DATA,TEXT} (16...19) are specific to SPARC. */ -#ifdef PTRACE_READDATA - if ((unsigned)req - PTRACE_READDATA < 4) - addr2 = va_arg(ap, void *); -#endif - va_end(ap); - if (req-1U < 3) data = &result; ret = syscall(SYS_ptrace, req, pid, addr, data, addr2); diff -burN musl-1.1.21.org/src/misc/ioctl.c musl-1.1.21/src/misc/ioctl.c --- musl-1.1.21.org/src/misc/ioctl.c 2019-04-10 13:35:43.605279563 +0200 +++ musl-1.1.21/src/misc/ioctl.c 2019-04-10 14:01:52.920515470 +0200 @@ -1,13 +1,9 @@ +#define ioctl undef_ioctl #include -#include #include "syscall.h" +#undef ioctl -int ioctl(int fd, int req, ...) +int ioctl(int fd, int req, void *arg) { - void *arg; - va_list ap; - va_start(ap, req); - arg = va_arg(ap, void *); - va_end(ap); return syscall(SYS_ioctl, fd, req, arg); }