On Monday 26 November 2012 07:53 PM, Markos Chandras wrote: > From: Markos Chandras <[email protected]> > > Signed-off-by: Markos Chandras <[email protected]> > --- > include/unistd.h | 1 + > libc/sysdeps/linux/common/access.c | 10 ++++++++++ > libc/sysdeps/linux/common/faccessat.c | 1 + > 3 files changed, 12 insertions(+) > > diff --git a/include/unistd.h b/include/unistd.h > index 766fcf3..1540aa9 100644 > --- a/include/unistd.h > +++ b/include/unistd.h > @@ -274,6 +274,7 @@ extern int eaccess (__const char *__name, int __type) > otherwise use real IDs like `access'. */ > extern int faccessat (int __fd, __const char *__file, int __type, int __flag) > __THROW __nonnull ((2)) __wur; > +libc_hidden_proto(faccessat) > #endif /* Use GNU. */ > > > diff --git a/libc/sysdeps/linux/common/access.c > b/libc/sysdeps/linux/common/access.c > index a075d42..fd676d9 100644 > --- a/libc/sysdeps/linux/common/access.c > +++ b/libc/sysdeps/linux/common/access.c > @@ -8,5 +8,15 @@ > */ > > #include <sys/syscall.h> > +#include <fcntl.h> > #include <unistd.h> > + > +#if defined(__NR_faccessat) && !defined(__NR_access) > +int access(const char *pathname, int mode) > +{ > + return faccessat(AT_FDCWD, pathname, mode, 0); > +} > + > +#else > _syscall2(int, access, const char *, pathname, int, mode) > +#endif > diff --git a/libc/sysdeps/linux/common/faccessat.c > b/libc/sysdeps/linux/common/faccessat.c > index 09ca129..ba84953 100644 > --- a/libc/sysdeps/linux/common/faccessat.c > +++ b/libc/sysdeps/linux/common/faccessat.c > @@ -12,5 +12,6 @@ > #ifdef __NR_faccessat > _syscall4(int, faccessat, int, fd, const char *, file, int, type, int, flag) > #else > +libc_hidden_def(faccessat)
Shouldn't this be in the #ifdef part ! > /* should add emulation with faccess() and /proc/self/fd/ ... */ > #endif > _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
