Index: uClibc-0.9.29/libc/sysdeps/linux/common/openat.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ uClibc-0.9.29/libc/sysdeps/linux/common/openat.c 2008-10-27 12:59:25.000000000 +0100 @@ -0,0 +1,44 @@ +/* vi: set sw=4 ts=4: */ +/* + * openat() for uClibc + * + * Copyright (C) 2000-2006 Erik Andersen + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + */ + +#include +#include +#include +#include +#include +#include +#include + +extern __typeof(openat) __libc_openat; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,52) +#define __NR___syscall_openat __NR_openat +static inline _syscall4(int, __syscall_openat, int, fd, const char *, file, + int, flags, __kernel_mode_t, mode); + +libc_hidden_proto(__libc_openat) +int __libc_openat(int fd, const char *file, int oflag, ...) +{ + mode_t mode = 0; + + if (oflag & O_CREAT) { + va_list arg; + va_start (arg, oflag); + mode = va_arg (arg, mode_t); + va_end (arg); + } + + return __syscall_openat(fd, file, oflag, mode); +} +libc_hidden_def(__libc_openat) + +libc_hidden_proto(openat) +weak_alias(__libc_openat,openat) +libc_hidden_weak(openat) +#endif Index: uClibc-0.9.29/include/fcntl.h =================================================================== --- uClibc-0.9.29.orig/include/fcntl.h 2008-10-27 12:52:04.000000000 +0100 +++ uClibc-0.9.29/include/fcntl.h 2008-10-27 13:08:11.000000000 +0100 @@ -56,7 +56,7 @@ # define SEEK_END 2 /* Seek from end of file. */ #endif /* XPG */ -#if 0 /*def __USE_GNU*/ +#ifdef __USE_GNU # define AT_FDCWD -100 /* Special value used to indicate openat should use the current working directory. */ @@ -103,7 +103,7 @@ extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1)); #endif -#if 0 /*def __USE_GNU*/ +#ifdef __USE_GNU /* Similar to OPEN but a relative path name is interpreted relative to the directory for which FD is a descriptor.