diff options
Diffstat (limited to 'main/uclibc/0002-add-hidden-aliases-for-openat-funcs.patch')
-rw-r--r-- | main/uclibc/0002-add-hidden-aliases-for-openat-funcs.patch | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/main/uclibc/0002-add-hidden-aliases-for-openat-funcs.patch b/main/uclibc/0002-add-hidden-aliases-for-openat-funcs.patch new file mode 100644 index 0000000000..03fddbf98e --- /dev/null +++ b/main/uclibc/0002-add-hidden-aliases-for-openat-funcs.patch @@ -0,0 +1,78 @@ +From 3f2b14f91f253d8e71b3f089b6864be9fcfbb09a Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Wed, 22 Jul 2009 01:48:08 -0400 +Subject: [PATCH 2/2] add hidden aliases for openat funcs + +openat64() uses openat(), so we need hidden aliases for it. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + include/fcntl.h | 2 ++ + libc/sysdeps/linux/common/openat.c | 7 +++++++ + libc/sysdeps/linux/common/openat64.c | 7 +++++++ + 3 files changed, 16 insertions(+), 0 deletions(-) + +diff --git a/include/fcntl.h b/include/fcntl.h +index 084ee8c..7ce3150 100644 +--- a/include/fcntl.h ++++ b/include/fcntl.h +@@ -119,6 +119,7 @@ extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1)); + # ifndef __USE_FILE_OFFSET64 + extern int openat (int __fd, __const char *__file, int __oflag, ...) + __nonnull ((2)); ++libc_hidden_proto(openat) + # else + # ifdef __REDIRECT + extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag, +@@ -130,6 +131,7 @@ extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag, + + extern int openat64 (int __fd, __const char *__file, int __oflag, ...) + __nonnull ((2)); ++libc_hidden_proto(openat64) + #endif + + /* Create and open FILE, with mode MODE. This takes an `int' MODE +diff --git a/libc/sysdeps/linux/common/openat.c b/libc/sysdeps/linux/common/openat.c +index 33bd606..8380ec6 100644 +--- a/libc/sysdeps/linux/common/openat.c ++++ b/libc/sysdeps/linux/common/openat.c +@@ -12,7 +12,14 @@ + #undef openat + + #ifdef __NR_openat ++/* The openat() prototype is varargs based, but we don't care about that ++ * here, so need to provide our own dedicated signature. ++ */ ++extern int openat(int fd, const char *file, int oflag, mode_t mode); ++libc_hidden_proto(openat) ++ + _syscall4(int, openat, int, fd, const char *, file, int, oflag, mode_t, mode) ++libc_hidden_def(openat) + #else + /* should add emulation with open() and /proc/self/fd/ ... */ + #endif +diff --git a/libc/sysdeps/linux/common/openat64.c b/libc/sysdeps/linux/common/openat64.c +index 75711aa..06a5819 100644 +--- a/libc/sysdeps/linux/common/openat64.c ++++ b/libc/sysdeps/linux/common/openat64.c +@@ -14,10 +14,17 @@ + #ifdef __UCLIBC_HAS_LFS__ + + #ifdef __NR_openat ++/* The openat() prototype is varargs based, but we don't care about that ++ * here, so need to provide our own dedicated signature. ++ */ ++extern int openat64(int fd, const char *file, int oflag, mode_t mode); ++libc_hidden_proto(openat64) ++ + int openat64(int fd, const char *file, int oflag, mode_t mode) + { + return openat(fd, file, oflag | O_LARGEFILE, mode); + } ++libc_hidden_def(openat64) + #else + /* should add emulation with open() and /proc/self/fd/ ... */ + #endif +-- +1.6.3.3 + |