-/* Copyright (C) 2011-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2019 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 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
-/* 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
+#include_next <kernel-features.h>
-/* Support for the accept4 and recvmmsg syscalls was added in 2.6.33. */
-#if __LINUX_KERNEL_VERSION >= 0x020621
-# define __ASSUME_ACCEPT4_SYSCALL 1
-# define __ASSUME_RECVMMSG_SYSCALL 1
+/* 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
-#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1
/* Support for the sendmmsg syscall was added in 3.3. */
-#if __LINUX_KERNEL_VERSION >= 0x030300
-# define __ASSUME_SENDMMSG_SYSCALL 1
+#if __LINUX_KERNEL_VERSION < 0x030300
+# undef __ASSUME_SENDMMSG_SYSCALL
#endif
-#include_next <kernel-features.h>
+/* Support for the renameat2 syscall was added in 3.17. */
+#if __LINUX_KERNEL_VERSION < 0x031100
+# undef __ASSUME_RENAMEAT2
+#endif
+
+/* Support for the execveat syscall was added in 4.0. */
+#if __LINUX_KERNEL_VERSION < 0x040000
+# undef __ASSUME_EXECVEAT
+#endif
+
+/* Support for the mlock2 syscall was added in 4.7. */
+#if __LINUX_KERNEL_VERSION < 0x040700
+# undef __ASSUME_MLOCK2
+#endif
+
+/* Support for the copy_file_range syscall was added in 4.10. */
+#if __LINUX_KERNEL_VERSION < 0x040A00
+# undef __ASSUME_COPY_FILE_RANGE
+#endif
+
+/* Support for statx was added in kernel 4.12. */
+#if __LINUX_KERNEL_VERSION < 0X040C00
+# undef __ASSUME_STATX
+#endif
+
+#undef __ASSUME_CLONE_DEFAULT
+#define __ASSUME_CLONE_BACKWARDS3