From 3f2b14f91f253d8e71b3f089b6864be9fcfbb09a Mon Sep 17 00:00:00 2001 From: Mike Frysinger 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 --- 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