remove the openat() patch, as it's breaking quite a few packages. the problem is in the AT_FDCWD define, which packages check for to see if fdopenat, openat, fstatat, etc. are supported, but the patch only adds openat() and not the other functions. this should probably be fixed upstream and not just in openwrt.

SVN-Revision: 13817
This commit is contained in:
Felix Fietkau 2009-01-02 04:16:30 +00:00
parent e5905aebb7
commit cf8362db3c

View File

@ -1,71 +0,0 @@
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 <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <fcntl.h>
+#include <string.h>
+#include <sys/param.h>
+#include <linux/version.h>
+
+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.