/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1999-2016 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
#include <sgidefs.h>
-/* Linux 2.3.39 introduced 32bit UID/GIDs. Some platforms had 32
- bit type all along. */
-#define __ASSUME_32BITUIDS 1
+/* Support for the accept4 syscall was added in 2.6.31. */
+#define __ASSUME_ACCEPT4_SYSCALL 1
-/* MIPS platforms had IPC64 all along. */
-#define __ASSUME_IPC64 1
+/* Support for the recvmmsg syscall was added in 2.6.33. */
+#if __LINUX_KERNEL_VERSION >= 0x020621
+# define __ASSUME_RECVMMSG_SYSCALL 1
+#endif
-#if _MIPS_SIM == _ABIN32
-# define __ASSUME_FCNTL64 1
+/* Support for the sendmmsg syscall was added in 3.1. */
+#if __LINUX_KERNEL_VERSION >= 0x030100
+# define __ASSUME_SENDMMSG_SYSCALL 1
#endif
#include_next <kernel-features.h>
+
+/* The n32 syscall ABI did not have a getdents64 syscall until
+ 2.6.35. */
+#if _MIPS_SIM == _ABIN32 && __LINUX_KERNEL_VERSION < 0x020623
+# undef __ASSUME_GETDENTS64_SYSCALL
+#endif
+
+/* The MIPS kernel does not support futex_atomic_cmpxchg_inatomic if
+ emulating LL/SC. */
+#if __mips == 1 || defined _MIPS_ARCH_R5900
+# undef __ASSUME_FUTEX_LOCK_PI
+# undef __ASSUME_REQUEUE_PI
+# undef __ASSUME_SET_ROBUST_LIST
+#endif