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

Reply via email to