From 416799ee539e356c3a4bc86485ffb502077ef9fd Mon Sep 17 00:00:00 2001 From: David McCullough Date: Tue, 29 Apr 2003 14:41:48 +0000 Subject: Fixup __libc_open to use varargs and match the prototype. On the H8 varargs are rather unusual and if you declare a function with varargs, it had better use them or it won't work. --- libc/sysdeps/linux/common/syscalls.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c index ede9fe384..74b2603a9 100644 --- a/libc/sysdeps/linux/common/syscalls.c +++ b/libc/sysdeps/linux/common/syscalls.c @@ -80,11 +80,16 @@ weak_alias (__libc_write, __write) #ifdef L___syscall_open #define __NR___syscall_open __NR_open #include -/* Do not include fcntl.h, so gcc doesn't whine the prototype */ +#include static inline _syscall3(int, __syscall_open, const char *, fn, int, flags, __kernel_mode_t, mode); -int __libc_open (const char * fn, int flags, mode_t mode) +int __libc_open (const char * fn, int flags, ...) { + va_list ap; + mode_t mode; + va_start(ap, flags); + mode = va_arg(ap, mode_t); + va_end(ap); return __syscall_open(fn, flags, mode); } -- cgit v1.2.3