diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/common/fstat.c | 12 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/getdents.c | 15 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/getdents64.c | 6 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/lstat.c | 12 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/posix_fadvise.c | 7 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/sendfile.c | 6 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/stat.c | 12 | 
7 files changed, 13 insertions, 57 deletions
| diff --git a/libc/sysdeps/linux/common/fstat.c b/libc/sysdeps/linux/common/fstat.c index 6d5cf8b9f..acc639bce 100644 --- a/libc/sysdeps/linux/common/fstat.c +++ b/libc/sysdeps/linux/common/fstat.c @@ -7,19 +7,11 @@   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.   */ -/* need to hide the 64bit prototype or the strong_alias() - * will fail when __NR_fstat64 doesnt exist */ -#define fstat64 __hidefstat64 -  #include <sys/syscall.h>  #include <unistd.h>  #include <sys/stat.h>  #include "xstatconv.h" -#undef fstat64 - -/* libc_hidden_proto(fstat) */ -  #define __NR___syscall_fstat __NR_fstat  static __inline__ _syscall2(int, __syscall_fstat, int, fd, struct kernel_stat *, buf) @@ -37,8 +29,6 @@ int fstat(int fd, struct stat *buf)  libc_hidden_def(fstat)  #if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__ -extern __typeof(fstat) fstat64; -/* libc_hidden_proto(fstat64) */ -strong_alias(fstat,fstat64) +strong_alias_untyped(fstat,fstat64)  libc_hidden_def(fstat64)  #endif diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c index e1aa2a51f..6a38772e8 100644 --- a/libc/sysdeps/linux/common/getdents.c +++ b/libc/sysdeps/linux/common/getdents.c @@ -18,6 +18,11 @@  #include <bits/kernel_types.h>  #include <bits/kernel-features.h> +#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64) +/* If the condition above is met, __getdents is defined as an alias + * for __getdents64 (see getdents64.c). Otherwise... + */ +  /* With newer versions of linux, the getdents syscall returns d_type   * information after the name field.   * @@ -42,7 +47,8 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes) attribute_hidden;  #define __NR___syscall_getdents __NR_getdents  static __always_inline _syscall3(int, __syscall_getdents, int, fd, unsigned char *, kdirp, size_t, count) -#ifdef __ASSUME_GETDENTS32_D_TYPE +#if defined __ASSUME_GETDENTS32_D_TYPE +  ssize_t __getdents (int fd, char *buf, size_t nbytes)  {  	ssize_t retval; @@ -72,9 +78,6 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes)  #elif ! defined __UCLIBC_HAS_LFS__ || ! defined __NR_getdents64 -/* Experimentally off - libc_hidden_proto(memcpy) */ -/* libc_hidden_proto(lseek) */ -  ssize_t __getdents (int fd, char *buf, size_t nbytes)  {      struct dirent *dp; @@ -136,8 +139,6 @@ attribute_hidden strong_alias(__getdents,__getdents64)  #elif __WORDSIZE == 32 -/* Experimentally off - libc_hidden_proto(memmove) */ -  extern __typeof(__getdents) __getdents64 attribute_hidden;  ssize_t __getdents (int fd, char *buf, size_t nbytes)  { @@ -165,3 +166,5 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes)  }  #endif + +#endif diff --git a/libc/sysdeps/linux/common/getdents64.c b/libc/sysdeps/linux/common/getdents64.c index 1864ff4fc..37cb4c6f8 100644 --- a/libc/sysdeps/linux/common/getdents64.c +++ b/libc/sysdeps/linux/common/getdents64.c @@ -20,9 +20,6 @@  #if defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 -/* Experimentally off - libc_hidden_proto(memcpy) */ -/* libc_hidden_proto(lseek64) */ -  # ifndef offsetof  #  define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)  # endif @@ -36,7 +33,6 @@ struct kernel_dirent64      char		d_name[256];  }; -  # define __NR___syscall_getdents64 __NR_getdents64  static __inline__ _syscall3(int, __syscall_getdents64, int, fd, unsigned char *, dirp, size_t, count) @@ -102,4 +98,4 @@ ssize_t __getdents64 (int fd, char *buf, size_t nbytes)  attribute_hidden strong_alias(__getdents64,__getdents)  #endif -#endif /* __UCLIBC_HAS_LFS__ */ +#endif diff --git a/libc/sysdeps/linux/common/lstat.c b/libc/sysdeps/linux/common/lstat.c index 1adbdcf87..aa774473c 100644 --- a/libc/sysdeps/linux/common/lstat.c +++ b/libc/sysdeps/linux/common/lstat.c @@ -7,19 +7,11 @@   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.   */ -/* need to hide the 64bit prototype or the strong_alias() - * will fail when __NR_lstat64 doesnt exist */ -#define lstat64 __hidelstat64 -  #include <sys/syscall.h>  #include <unistd.h>  #include <sys/stat.h>  #include "xstatconv.h" -#undef lstat64 - -/* libc_hidden_proto(lstat) */ -  #define __NR___syscall_lstat __NR_lstat  static __inline__ _syscall2(int, __syscall_lstat,  		const char *, file_name, struct kernel_stat *, buf) @@ -38,8 +30,6 @@ int lstat(const char *file_name, struct stat *buf)  libc_hidden_def(lstat)  #if ! defined __NR_lstat64 && defined __UCLIBC_HAS_LFS__ -extern __typeof(lstat) lstat64; -/* libc_hidden_proto(lstat64) */ -strong_alias(lstat,lstat64) +strong_alias_untyped(lstat,lstat64)  libc_hidden_def(lstat64)  #endif diff --git a/libc/sysdeps/linux/common/posix_fadvise.c b/libc/sysdeps/linux/common/posix_fadvise.c index a3f9c7653..c00b79e6c 100644 --- a/libc/sysdeps/linux/common/posix_fadvise.c +++ b/libc/sysdeps/linux/common/posix_fadvise.c @@ -8,15 +8,9 @@   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.   */ -/* need to hide the 64bit prototype or the strong_alias() - * will fail when __NR_fadvise64_64 doesnt exist */ -#define posix_fadvise64 __hideposix_fadvise64 -  #include <sys/syscall.h>  #include <fcntl.h> -#undef posix_fadvise64 -  #ifdef __NR_fadvise64  #define __NR_posix_fadvise __NR_fadvise64  /* get rid of following conditional when @@ -49,7 +43,6 @@ int posix_fadvise(int fd, off_t offset, off_t len, int advice)  #endif  #if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || !defined _syscall6) -extern __typeof(posix_fadvise) posix_fadvise64;  strong_alias(posix_fadvise,posix_fadvise64)  #endif diff --git a/libc/sysdeps/linux/common/sendfile.c b/libc/sysdeps/linux/common/sendfile.c index 0d2ebaaf6..89bab9f35 100644 --- a/libc/sysdeps/linux/common/sendfile.c +++ b/libc/sysdeps/linux/common/sendfile.c @@ -7,16 +7,10 @@   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.   */ -/* need to hide the 64bit prototype or the strong_alias() - * will fail when __NR_sendfile64 doesnt exist */ -#define sendfile64 __hidesendfile64 -  #include <sys/syscall.h>  #include <unistd.h>  #include <sys/sendfile.h> -#undef sendfile64 -  #ifdef __NR_sendfile  _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset, diff --git a/libc/sysdeps/linux/common/stat.c b/libc/sysdeps/linux/common/stat.c index d563bcd88..a6ab291f2 100644 --- a/libc/sysdeps/linux/common/stat.c +++ b/libc/sysdeps/linux/common/stat.c @@ -7,19 +7,11 @@   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.   */ -/* need to hide the 64bit prototype or the strong_alias() - * will fail when __NR_stat64 doesnt exist */ -#define stat64 __hidestat64 -  #include <sys/syscall.h>  #include <unistd.h>  #include <sys/stat.h>  #include "xstatconv.h" -#undef stat64 - -/* libc_hidden_proto(stat) */ -  #define __NR___syscall_stat __NR_stat  #undef stat  static __inline__ _syscall2(int, __syscall_stat, @@ -39,8 +31,6 @@ int stat(const char *file_name, struct stat *buf)  libc_hidden_def(stat)  #if ! defined __NR_stat64 && defined __UCLIBC_HAS_LFS__ -extern __typeof(stat) stat64; -/* libc_hidden_proto(stat64) */ -strong_alias(stat,stat64) +strong_alias_untyped(stat,stat64)  libc_hidden_def(stat64)  #endif | 
