diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
index 53039f9..bd94fe1 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
@@ -25,14 +25,10 @@
    features.  */
 
 #define __ASSUME_ACCEPT4_SYSCALL        1
-#define __ASSUME_DUP3                   1
-#define __ASSUME_EVENTFD2		1
-#define __ASSUME_IN_NONBLOCK            1
-#define __ASSUME_O_CLOEXEC              1
-#define __ASSUME_PIPE2                  1
 #define __ASSUME_RECVMMSG_SYSCALL       1
 #define __ASSUME_SENDMMSG_SYSCALL       1
-#define __ASSUME_SIGNALFD4		1
-#define __ASSUME_SOCK_CLOEXEC           1
 
 #include_next <kernel-features.h>
+
+/* asm-generic architectures do not have the utimes syscall.  */
+#undef __ASSUME_UTIMES
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index 2e3fc7d..bea7057 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -20,26 +20,6 @@
 #ifndef _KERNEL_FEATURES_H
 #define _KERNEL_FEATURES_H 1
 
-#define __ASSUME_UTIMES	1
-
-/* Support for the O_CLOEXEC flag was added for alpha in 2.6.23.  */
-#define __ASSUME_O_CLOEXEC    1
-
-/* Support for various CLOEXEC and NONBLOCK flags was added for alpha after
-   2.6.33-rc1.  */
-#if __LINUX_KERNEL_VERSION >= 0x020621
-# define __ASSUME_SOCK_CLOEXEC  1
-# define __ASSUME_IN_NONBLOCK   1
-#endif
-
-/* Support for the pipe2, eventfd2, signalfd4 syscalls was added for alpha
-   after 2.6.33-rc1.  */
-#if __LINUX_KERNEL_VERSION >= 0x020621
-# define __ASSUME_PIPE2     1
-# define __ASSUME_EVENTFD2  1
-# define __ASSUME_SIGNALFD4 1
-#endif
-
 /* Support for recvmmsg was added for alpha in 2.6.33.  */
 #if __LINUX_KERNEL_VERSION >= 0x020621
 # define __ASSUME_RECVMMSG_SYSCALL       1
@@ -67,10 +47,15 @@
 /* Support for fsyncdata was added for alpha after 2.6.21.  */
 #define __ASSUME_FDATASYNC	1
 
-/* Support for preadv and pwritev was added for alpha in 2.6.33.  */
+/* Support for various syscalls was added for alpha in 2.6.33.  */
 #if __LINUX_KERNEL_VERSION < 0x020621
 # undef __ASSUME_PREADV
 # undef __ASSUME_PWRITEV
+# undef __ASSUME_IN_NONBLOCK
+# undef __ASSUME_PIPE2
+# undef __ASSUME_EVENTFD2
+# undef __ASSUME_SIGNALFD4
+# undef __ASSUME_DUP3
 #endif
 
 #endif /* _KERNEL_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index ce0f03e..354f2ca 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -17,16 +17,9 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* The utimes syscall was added before 2.6.1.  */
-#define __ASSUME_UTIMES	1
-
 /* The signal frame layout changed in 2.6.18.  */
 #define __ASSUME_SIGFRAME_V2	1
 
-/* Support for the eventfd2 and signalfd4 syscalls was added in 2.6.27.  */
-#define __ASSUME_EVENTFD2	1
-#define __ASSUME_SIGNALFD4	1
-
 /* Support for the recvmmsg syscall was added in 2.6.33.  */
 #if __LINUX_KERNEL_VERSION >= 0x020621
 # define __ASSUME_RECVMMSG_SYSCALL	1
diff --git a/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index e869c14..25c3e36 100644
--- a/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -18,15 +18,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 
-/* There are an infinite number of PA-RISC kernel versions numbered
-   2.4.0.  But they've not really been released as such.  We require
-   and expect the final version here.  */
-#define __ASSUME_32BITUIDS		1
-#define __ASSUME_TRUNCATE64_SYSCALL	1
-#define __ASSUME_IPC64			1
-#define __ASSUME_ST_INO_64_BIT		1
-#define __ASSUME_GETDENTS64_SYSCALL	1
-
 /* PA-RISC 2.6.9 kernels had the first LWS CAS support */
 #define __ASSUME_LWS_CAS		1
 
@@ -42,3 +33,8 @@
 #endif
 
 #include_next <kernel-features.h>
+
+/* hppa did not get the utimes syscall until 3.14.  */
+#if __LINUX_KERNEL_VERSION < 0x030e00
+# undef __ASSUME_UTIMES
+#endif
diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
index 471fb88..c32789b 100644
--- a/sysdeps/unix/sysv/linux/ia64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
@@ -20,25 +20,6 @@
 #ifndef _KERNEL_FEATURES_H
 #define _KERNEL_FEATURES_H 1
 
-/* The utimes syscall has been available for some architectures
-   forever.  */
-#define __ASSUME_UTIMES	1
-
-/* pselect/ppoll were introduced just after 2.6.16-rc1.  */
-#define __ASSUME_PSELECT	1
-#define __ASSUME_PPOLL		1
-
-/* Support for various CLOEXEC and NONBLOCK flags was added in 2.6.23.  */
-#define __ASSUME_O_CLOEXEC	1
-
-/* Support for various CLOEXEC and NONBLOCK flags was added in 2.6.27.  */
-#define __ASSUME_SOCK_CLOEXEC	1
-#define __ASSUME_IN_NONBLOCK	1
-#define __ASSUME_PIPE2		1
-#define __ASSUME_EVENTFD2	1
-#define __ASSUME_SIGNALFD4	1
-#define __ASSUME_DUP3		1
-
 /* Support for the recvmmsg syscall was added in 2.6.33.  */
 #if __LINUX_KERNEL_VERSION >= 0x020621
 # define __ASSUME_RECVMMSG_SYSCALL	1
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 46e16f6..026f89f 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -76,14 +76,7 @@
    forever.  For x86 it was introduced after 2.5.75, for x86-64,
    ppc, and ppc64 it was introduced in 2.6.0-test3, for s390 it was
    introduced in 2.6.21-rc5.  */
-#if defined __sparc__ \
-    || defined __i386__ \
-    || defined __x86_64__ \
-    || defined __powerpc__ \
-    || defined __sh__ \
-    || defined __s390__
-# define __ASSUME_UTIMES	1
-#endif
+#define __ASSUME_UTIMES	1
 
 /* pselect/ppoll were introduced just after 2.6.16-rc1.  On x86_64 and
    SH this appeared first in 2.6.19-rc1, on ia64 in 2.6.22-rc1.  */
@@ -123,27 +116,21 @@
    only after 2.6.23-rc1.  */
 #define __ASSUME_FALLOCATE	1
 
-/* Support for various CLOEXEC and NONBLOCK flags was added for x86,
-   x86-64, PPC, IA-64, SPARC< and S390 in 2.6.23.  */
-#if (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
-     || defined __sparc__ || defined __s390__)
-# define __ASSUME_O_CLOEXEC	1
-#endif
+/* Support for various CLOEXEC and NONBLOCK flags was added in
+   2.6.23.  */
+#define __ASSUME_O_CLOEXEC	1
 
 /* Support for ADJ_OFFSET_SS_READ was added in 2.6.24.  */
 #define __ASSUME_ADJ_OFFSET_SS_READ	1
 
-/* Support for various CLOEXEC and NONBLOCK flags was added for x86,
-   x86-64, PPC, IA-64, and SPARC in 2.6.27.  */
-#if (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
-     || defined __sparc__ || defined __s390__)
-# define __ASSUME_SOCK_CLOEXEC	1
-# define __ASSUME_IN_NONBLOCK	1
-# define __ASSUME_PIPE2		1
-# define __ASSUME_EVENTFD2	1
-# define __ASSUME_SIGNALFD4	1
-# define __ASSUME_DUP3		1
-#endif
+/* Support for various CLOEXEC and NONBLOCK flags was added in
+   2.6.27.  */
+#define __ASSUME_SOCK_CLOEXEC	1
+#define __ASSUME_IN_NONBLOCK	1
+#define __ASSUME_PIPE2		1
+#define __ASSUME_EVENTFD2	1
+#define __ASSUME_SIGNALFD4	1
+#define __ASSUME_DUP3		1
 
 /* Support for accept4 functionality was added in 2.6.28, but for some
    architectures using a separate syscall rather than socketcall that
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index e47fd3b..03bcadb 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -20,20 +20,6 @@
 /* m68k uses socketcall.  */
 #define __ASSUME_SOCKETCALL	1
 
-/* Many syscalls were added in 2.6.10 for m68k.  */
-#define __ASSUME_UTIMES	1
-
-/* Support for various CLOEXEC and NONBLOCK flags was added 2.6.23.  */
-#define __ASSUME_O_CLOEXEC	1
-
-/* Support for various CLOEXEC and NONBLOCK flags was added in 2.6.27.  */
-#define __ASSUME_SOCK_CLOEXEC	1
-#define __ASSUME_IN_NONBLOCK	1
-#define __ASSUME_PIPE2		1
-#define __ASSUME_EVENTFD2	1
-#define __ASSUME_SIGNALFD4	1
-#define __ASSUME_DUP3		1
-
 #include_next <kernel-features.h>
 
 /* These syscalls were added only in 3.0 for m68k.  */
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index c7c8c03..066c12d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -19,16 +19,6 @@
 /* MicroBlaze uses socketcall.  */
 #define __ASSUME_SOCKETCALL	1
 
-/* MicroBlaze glibc support starts with 2.6.30, guaranteeing many kernel features.  */
-#define __ASSUME_UTIMES         1
-#define __ASSUME_O_CLOEXEC      1
-#define __ASSUME_SOCK_CLOEXEC   1
-#define __ASSUME_IN_NONBLOCK    1
-#define __ASSUME_PIPE2          1
-#define __ASSUME_EVENTFD2       1
-#define __ASSUME_SIGNALFD4      1
-#define __ASSUME_DUP3           1
-
 /* Support for the accept4 and recvmmsg syscalls was added in 2.6.33.  */
 #if __LINUX_KERNEL_VERSION >= 0x020621
 # define __ASSUME_ACCEPT4_SYSCALL        1
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index a1ebf79..b53118d 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -19,16 +19,6 @@
 
 #include <sgidefs.h>
 
-/* MIPS platforms had IPC64 all along.  */
-#define __ASSUME_IPC64		1
-
-/* MIPS had the utimes syscall by 2.6.0.  */
-#define __ASSUME_UTIMES		1
-
-/* Support for the eventfd2 and signalfd4 syscalls was added in 2.6.27.  */
-#define __ASSUME_EVENTFD2	1
-#define __ASSUME_SIGNALFD4	1
-
 /* Support for the accept4 syscall was added in 2.6.31.  */
 #define __ASSUME_ACCEPT4_SYSCALL	1
 
diff --git a/sysdeps/unix/sysv/linux/tile/kernel-features.h b/sysdeps/unix/sysv/linux/tile/kernel-features.h
index b028152..78aacac 100644
--- a/sysdeps/unix/sysv/linux/tile/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/tile/kernel-features.h
@@ -18,14 +18,7 @@
 
 
 /* TILE glibc support starts with 2.6.36, guaranteeing many kernel features. */
-#define __ASSUME_O_CLOEXEC		1
-#define __ASSUME_SOCK_CLOEXEC		1
-#define __ASSUME_IN_NONBLOCK		1
-#define __ASSUME_PIPE2			1
-#define __ASSUME_EVENTFD2		1
-#define __ASSUME_SIGNALFD4		1
 #define __ASSUME_ACCEPT4_SYSCALL	1
-#define __ASSUME_DUP3			1
 #define __ASSUME_RECVMMSG_SYSCALL	1
 
 /* Support for the sendmmsg syscall was added in 3.0.  */
@@ -35,6 +28,9 @@
 
 #include_next <kernel-features.h>
 
+/* asm-generic architectures do not have the utimes syscall.  */
+#undef __ASSUME_UTIMES
+
 /* Define this if your 32-bit syscall API requires 64-bit register
    pairs to start with an even-number register.  */
 #define __ASSUME_ALIGNED_REGISTER_PAIRS	1
