diff options
-rw-r--r-- | include/unistd.h | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/Makefile.in | 1 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/euidaccess.c | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/include/unistd.h b/include/unistd.h index 40d6abdc0..8e4daf687 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -290,7 +290,7 @@ typedef __socklen_t socklen_t; /* Test for access to NAME using the real UID and real GID. */ extern int access (const char *__name, int __type) __THROW __nonnull ((1)); -#if 0 /*def __USE_GNU*/ +#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU /* Test for access to NAME using the effective UID and GID (as normal file operations use). */ extern int euidaccess (const char *__name, int __type) diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in index b75b712ac..ade0ac3e2 100644 --- a/libc/sysdeps/linux/common/Makefile.in +++ b/libc/sysdeps/linux/common/Makefile.in @@ -24,6 +24,7 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \ capget.c \ capset.c \ dup3.c \ + euidaccess.c \ eventfd.c \ eventfd_read.c \ eventfd_write.c \ diff --git a/libc/sysdeps/linux/common/euidaccess.c b/libc/sysdeps/linux/common/euidaccess.c new file mode 100644 index 000000000..6e1f39855 --- /dev/null +++ b/libc/sysdeps/linux/common/euidaccess.c @@ -0,0 +1,10 @@ +#define _GNU_SOURCE +#include <unistd.h> +#include <fcntl.h> + +int euidaccess(const char *filename, int amode) +{ + return faccessat(AT_FDCWD, filename, amode, AT_EACCESS); +} + +weak_alias(euidaccess, eaccess); |