diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/arm/posix_fadvise.c | 19 | ||||
| -rw-r--r-- | libc/sysdeps/linux/arm/posix_fadvise64.c | 17 | ||||
| -rw-r--r-- | libc/sysdeps/linux/i386/posix_fadvise64.S | 26 | 
3 files changed, 47 insertions, 15 deletions
| diff --git a/libc/sysdeps/linux/arm/posix_fadvise.c b/libc/sysdeps/linux/arm/posix_fadvise.c index bb4ac7b0c..b23eb3d6b 100644 --- a/libc/sysdeps/linux/arm/posix_fadvise.c +++ b/libc/sysdeps/linux/arm/posix_fadvise.c @@ -9,12 +9,21 @@   */  #include <sys/syscall.h>  #include <fcntl.h> +  #if defined __NR_arm_fadvise64_64 + +/* Was named __libc_posix_fadvise for some inexplicable reason. +** google says only uclibc has *__libc*_posix_fadviseXXX, +** so it cannot be compat with anything. +** +** Remove this comment and one at the end after 0.9.31 +*/ +  /* This is for the ARM version of fadvise64_64 which swaps the params   *  * about to avoid having ABI compat issues   *   */  #define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64 -int __libc_posix_fadvise(int fd, off_t offset, off_t len, int advise) +int posix_fadvise(int fd, off_t offset, off_t len, int advise)  {    INTERNAL_SYSCALL_DECL (err);    int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise, @@ -24,13 +33,15 @@ int __libc_posix_fadvise(int fd, off_t offset, off_t len, int advise)      if (INTERNAL_SYSCALL_ERROR_P (ret, err))        return INTERNAL_SYSCALL_ERRNO (ret, err);      return 0; -  } -weak_alias(__libc_posix_fadvise, posix_fadvise); + +/* weak_alias(__libc_posix_fadvise, posix_fadvise); */ +  #else +  int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)  {  	return ENOSYS;  } -#endif +#endif diff --git a/libc/sysdeps/linux/arm/posix_fadvise64.c b/libc/sysdeps/linux/arm/posix_fadvise64.c index 479b0c5a2..4b27381d1 100644 --- a/libc/sysdeps/linux/arm/posix_fadvise64.c +++ b/libc/sysdeps/linux/arm/posix_fadvise64.c @@ -20,11 +20,19 @@  #ifdef __UCLIBC_HAS_LFS__  #if defined __NR_arm_fadvise64_64 + +/* Was named __libc_posix_fadvise64 for some inexplicable reason. +** google says only uclibc has *__libc*_posix_fadviseXXX, +** so it cannot be compat with anything. +** +** Remove this comment and one at the end after 0.9.31 +*/ +  /* This is for the ARM version of fadvise64_64 which swaps the params   * about to avoid having ABI compat issues   */  #define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64 -int __libc_posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise) +int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)  {    INTERNAL_SYSCALL_DECL (err);    int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise, @@ -36,11 +44,16 @@ int __libc_posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)     return INTERNAL_SYSCALL_ERRNO (ret, err);    return 0;  } -weak_alias(__libc_posix_fadvise64, posix_fadvise64); + +/* weak_alias(__libc_posix_fadvise64, posix_fadvise64); */ +  #else +  int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)  {  	return ENOSYS;  } +  #endif +  #endif diff --git a/libc/sysdeps/linux/i386/posix_fadvise64.S b/libc/sysdeps/linux/i386/posix_fadvise64.S index b99b35ee7..17f006aa8 100644 --- a/libc/sysdeps/linux/i386/posix_fadvise64.S +++ b/libc/sysdeps/linux/i386/posix_fadvise64.S @@ -22,10 +22,17 @@  #include <bits/errno.h>  #include <sys/syscall.h> +/* Was named __libc_posix_fadvise64 for some inexplicable reason. +** google says only uclibc has *__libc*_posix_fadviseXXX, +** so it cannot be compat with anything. +** +** Remove this comment and one at the end after 0.9.31 +*/ +  .text -.global __libc_posix_fadvise64 -.type   __libc_posix_fadvise64,%function -__libc_posix_fadvise64: +.global posix_fadvise64 +.type   posix_fadvise64,%function +posix_fadvise64:  #if defined __NR_fadvise64_64  	/* Save regs  */  	pushl	%ebp @@ -91,10 +98,11 @@ overflow:  	/* Successful; return the syscall's value.  */  	ret -.size __libc_posix_fadvise64,.-__libc_posix_fadvise64 - -libc_hidden_def(__libc_posix_fadvise64) -#if defined __UCLIBC_HAS_LFS__ && defined __UCLIBC_HAS_ADVANCED_REALTIME__ -weak_alias(__libc_posix_fadvise64,posix_fadvise64) -#endif +.size posix_fadvise64,.-posix_fadvise64 +/* +** libc_hidden_def(__libc_posix_fadvise64) +** #if defined __UCLIBC_HAS_LFS__ && defined __UCLIBC_HAS_ADVANCED_REALTIME__ +** weak_alias(__libc_posix_fadvise64,posix_fadvise64) +** #endif +*/ | 
