-/* Copyright (C) 2011-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
<http://www.gnu.org/licenses/>. */
-/* 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_ACCEPT4 1
-#define __ASSUME_DUP3 1
+/* MicroBlaze uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* All supported kernel versions for MicroBlaze have these syscalls. */
+#define __ASSUME_SOCKET_SYSCALL 1
+#define __ASSUME_BIND_SYSCALL 1
+#define __ASSUME_CONNECT_SYSCALL 1
+#define __ASSUME_LISTEN_SYSCALL 1
+#define __ASSUME_GETSOCKNAME_SYSCALL 1
+#define __ASSUME_GETPEERNAME_SYSCALL 1
+#define __ASSUME_SOCKETPAIR_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SHUTDOWN_SYSCALL 1
+#define __ASSUME_GETSOCKOPT_SYSCALL 1
+#define __ASSUME_SETSOCKOPT_SYSCALL 1
#include_next <kernel-features.h>
+
+/* Support for the pselect6, preadv and pwritev syscalls was added in
+ 3.15. */
+#if __LINUX_KERNEL_VERSION < 0x030f00
+# undef __ASSUME_PSELECT
+# undef __ASSUME_PREADV
+# undef __ASSUME_PWRITEV
+#endif
+
+/* Support for the sendmmsg syscall was added in 3.3. */
+#if __LINUX_KERNEL_VERSION < 0x030300
+# undef __ASSUME_SENDMMSG_SYSCALL
+#endif
+
+/* Support for the execveat syscall was added in 4.0. */
+#if __LINUX_KERNEL_VERSION < 0x040000
+# undef __ASSUME_EXECVEAT
+#endif