mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
Remove __ASSUME_COMPLETE_READV_WRITEV.
This patch removes the __ASSUME_COMPLETE_READV_WRITEV kernel-features.h macro, now that it can be unconditionally assumed to be true. (The relevant kernel feature was added some time between 2.0 and 2.2, and this macro is only used in sysdeps/unix/sysv/linux/.) Tested x86_64 that the disassembly of installed shared libraries is unchanged by this patch. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_COMPLETE_READV_WRITEV): Remove macro. * sysdeps/unix/sysv/linux/readv.c: Do not include <kernel-features.h>. [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. [!UIO_FASTIOV] (UIO_FASTIOV): Remove macro. (__libc_readv) [__ASSUME_COMPLETE_READV_WRITEV]: Make code unconditional. (__libc_readv) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. * sysdeps/unix/sysv/linux/writev.c: Do not include <kernel-features.h>. [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code. [!UIO_FASTIOV] (UIO_FASTIOV): Remove macro. (__libc_writev) [__ASSUME_COMPLETE_READV_WRITEV]: Make code unconditional. (__libc_writev) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
This commit is contained in:
parent
c7aec4beb1
commit
0f5b71850e
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
|||||||
|
2014-06-25 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/kernel-features.h
|
||||||
|
(__ASSUME_COMPLETE_READV_WRITEV): Remove macro.
|
||||||
|
* sysdeps/unix/sysv/linux/readv.c: Do not include
|
||||||
|
<kernel-features.h>.
|
||||||
|
[!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
|
||||||
|
[!UIO_FASTIOV] (UIO_FASTIOV): Remove macro.
|
||||||
|
(__libc_readv) [__ASSUME_COMPLETE_READV_WRITEV]: Make code
|
||||||
|
unconditional.
|
||||||
|
(__libc_readv) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove
|
||||||
|
conditional code.
|
||||||
|
* sysdeps/unix/sysv/linux/writev.c: Do not include
|
||||||
|
<kernel-features.h>.
|
||||||
|
[!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
|
||||||
|
[!UIO_FASTIOV] (UIO_FASTIOV): Remove macro.
|
||||||
|
(__libc_writev) [__ASSUME_COMPLETE_READV_WRITEV]: Make code
|
||||||
|
unconditional.
|
||||||
|
(__libc_writev) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove
|
||||||
|
conditional code.
|
||||||
|
|
||||||
2014-06-25 Will Newton <will.newton@linaro.org>
|
2014-06-25 Will Newton <will.newton@linaro.org>
|
||||||
|
|
||||||
* sysdeps/posix/tempname.c: Merge from gnulib, cosmetic
|
* sysdeps/posix/tempname.c: Merge from gnulib, cosmetic
|
||||||
|
@ -94,11 +94,6 @@
|
|||||||
# define __ASSUME_SET_ROBUST_LIST 1
|
# define __ASSUME_SET_ROBUST_LIST 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Pessimistically assume that 2.6.18 introduced real handling of
|
|
||||||
large numbers of requests to readv and writev and that we don't
|
|
||||||
need a fallback. It likely worked for much longer. */
|
|
||||||
#define __ASSUME_COMPLETE_READV_WRITEV 1
|
|
||||||
|
|
||||||
/* Support for PI futexes was added in 2.6.18 (but some architectures
|
/* Support for PI futexes was added in 2.6.18 (but some architectures
|
||||||
lack futex_atomic_cmpxchg_inatomic in some configurations). */
|
lack futex_atomic_cmpxchg_inatomic in some configurations). */
|
||||||
#if !(defined __sparc__ && !defined __arch64__ && !defined __sparc_v9__)
|
#if !(defined __sparc__ && !defined __arch64__ && !defined __sparc_v9__)
|
||||||
|
@ -23,19 +23,8 @@
|
|||||||
|
|
||||||
#include <sysdep-cancel.h>
|
#include <sysdep-cancel.h>
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <kernel-features.h>
|
|
||||||
|
|
||||||
#ifndef __ASSUME_COMPLETE_READV_WRITEV
|
|
||||||
static ssize_t __atomic_readv_replacement (int, const struct iovec *,
|
|
||||||
int) internal_function;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Not all versions of the kernel support the large number of records. */
|
|
||||||
#ifndef UIO_FASTIOV
|
|
||||||
# define UIO_FASTIOV 8 /* 8 is a safe number. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
/* Consider moving to syscalls.list. */
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
__libc_readv (fd, vector, count)
|
__libc_readv (fd, vector, count)
|
||||||
@ -56,19 +45,7 @@ __libc_readv (fd, vector, count)
|
|||||||
LIBC_CANCEL_RESET (oldtype);
|
LIBC_CANCEL_RESET (oldtype);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __ASSUME_COMPLETE_READV_WRITEV
|
|
||||||
return result;
|
return result;
|
||||||
#else
|
|
||||||
if (result >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
return __atomic_readv_replacement (fd, vector, count);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
strong_alias (__libc_readv, __readv)
|
strong_alias (__libc_readv, __readv)
|
||||||
weak_alias (__libc_readv, readv)
|
weak_alias (__libc_readv, readv)
|
||||||
|
|
||||||
#ifndef __ASSUME_COMPLETE_READV_WRITEV
|
|
||||||
# define __libc_readv static internal_function __atomic_readv_replacement
|
|
||||||
# include <sysdeps/posix/readv.c>
|
|
||||||
#endif
|
|
||||||
|
@ -23,19 +23,9 @@
|
|||||||
|
|
||||||
#include <sysdep-cancel.h>
|
#include <sysdep-cancel.h>
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <kernel-features.h>
|
|
||||||
|
|
||||||
#ifndef __ASSUME_COMPLETE_READV_WRITEV
|
|
||||||
static ssize_t __atomic_writev_replacement (int, const struct iovec *,
|
|
||||||
int) internal_function;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Not all versions of the kernel support the large number of records. */
|
/* Consider moving to syscalls.list. */
|
||||||
#ifndef UIO_FASTIOV
|
|
||||||
# define UIO_FASTIOV 8 /* 8 is a safe number. */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
__libc_writev (fd, vector, count)
|
__libc_writev (fd, vector, count)
|
||||||
@ -56,19 +46,7 @@ __libc_writev (fd, vector, count)
|
|||||||
LIBC_CANCEL_RESET (oldtype);
|
LIBC_CANCEL_RESET (oldtype);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __ASSUME_COMPLETE_READV_WRITEV
|
|
||||||
return result;
|
return result;
|
||||||
#else
|
|
||||||
if (result >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
return __atomic_writev_replacement (fd, vector, count);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
strong_alias (__libc_writev, __writev)
|
strong_alias (__libc_writev, __writev)
|
||||||
weak_alias (__libc_writev, writev)
|
weak_alias (__libc_writev, writev)
|
||||||
|
|
||||||
#ifndef __ASSUME_COMPLETE_READV_WRITEV
|
|
||||||
# define __libc_writev static internal_function __atomic_writev_replacement
|
|
||||||
# include <sysdeps/posix/writev.c>
|
|
||||||
#endif
|
|
||||||
|
Loading…
Reference in New Issue
Block a user