about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-03-19 13:10:52 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-03-19 13:10:52 +0000
commitb1115e916a2d94d85a110126f8781f0717269766 (patch)
tree98a07e2e9180a5abaca620c4ffde8bac4f8e0f36
parent7d375303f23668ebc7542fe8e331bd4eab749627 (diff)
downloadglibc-b1115e916a2d94d85a110126f8781f0717269766.tar.gz
glibc-b1115e916a2d94d85a110126f8781f0717269766.tar.xz
glibc-b1115e916a2d94d85a110126f8781f0717269766.zip
Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649).
Reviewing (for all architectures, with a baseline kernel version of
2.6.32) the kernel support for features for which __ASSUME_* macros
would be affected by a move to 2.6.32 as minimum kernel version showed
up that __ASSUME_PREADV and __ASSUME_PWRITEV were wrongly defined for
MicroBlaze (despite the corresponding syscall table entries not being
wired up in the kernel) and Alpha for 2.6.30 and above (although the
support on Alpha was added in 2.6.33).  This patch makes the
kernel-features.h files undefine those macros for appropriate
versions.

	[BZ #16649]
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PREADV): Undefine.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PWRITEV): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_PREADV): Undefine.
	(__ASSUME_PWRITEV): Likewise.
-rw-r--r--ChangeLog10
-rw-r--r--NEWS4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel-features.h6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel-features.h5
4 files changed, 22 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9db957d06e..574abe16a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-03-19  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #16649]
+	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
+	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PREADV): Undefine.
+	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PWRITEV): Likewise.
+	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+	(__ASSUME_PREADV): Undefine.
+	(__ASSUME_PWRITEV): Likewise.
+
 2014-03-18  Roland McGrath  <roland@hack.frob.com>
 
 	* bits/mman-linux.h: Add comment about non-Linux use.
diff --git a/NEWS b/NEWS
index df5507afcb..5f9ffcc569 100644
--- a/NEWS
+++ b/NEWS
@@ -10,8 +10,8 @@ Version 2.20
 * The following bugs are resolved with this release:
 
   15347, 15804, 15894, 16447, 16532, 16545, 16574, 16600, 16609, 16610,
-  16611, 16613, 16623, 16632, 16639, 16642, 16670, 16674, 16677, 16680,
-  16683, 16689, 16695, 16701, 16706, 16707.
+  16611, 16613, 16623, 16632, 16639, 16642, 16649, 16670, 16674, 16677,
+  16680, 16683, 16689, 16695, 16701, 16706, 16707.
 
 * Running the testsuite no longer terminates as soon as a test fails.
   Instead, a file tests.sum (xtests.sum from "make xcheck") is generated,
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index e691bb0e1e..f3a7a555c0 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -93,4 +93,10 @@
 # define __ASSUME_FDATASYNC	1
 #endif
 
+/* Support for preadv and pwritev was added for alpha in 2.6.33.  */
+#if __LINUX_KERNEL_VERSION < 0x020621
+# undef __ASSUME_PREADV
+# undef __ASSUME_PWRITEV
+#endif
+
 #endif /* _KERNEL_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index dfb83443c1..f9a61a9415 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -43,5 +43,8 @@
 
 #include_next <kernel-features.h>
 
-/* The MicroBlaze kernel does not support the pselect6 syscall.  */
+/* The MicroBlaze kernel does not support the pselect6, preadv and
+   pwritev syscalls.  */
 #undef __ASSUME_PSELECT
+#undef __ASSUME_PREADV
+#undef __ASSUME_PWRITEV