diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/kernel-features.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/kernel-features.h | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h index abcef75852..91990a716f 100644 --- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h +++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h @@ -1,6 +1,6 @@ /* Set flags signalling availability of kernel features based on given kernel version number. SPARC version. - Copyright (C) 1999-2016 Free Software Foundation, Inc. + Copyright (C) 1999-2018 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 @@ -20,28 +20,42 @@ /* SPARC uses socketcall. */ #define __ASSUME_SOCKETCALL 1 -/* The accept4 syscall was added for SPARC in 2.6.28. */ -#define __ASSUME_ACCEPT4_SYSCALL 1 -#define __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL 1 - -/* The recvmmsg syscall was added for SPARC in 2.6.33. */ -#if __LINUX_KERNEL_VERSION >= 0x020621 -# define __ASSUME_RECVMMSG_SYSCALL 1 -#endif -#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1 - -/* The sendmmsg syscall was added for SPARC in 3.0. */ -#if __LINUX_KERNEL_VERSION >= 0x030000 -# define __ASSUME_SENDMMSG_SYSCALL 1 -#endif -#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1 - #include_next <kernel-features.h> /* 32-bit SPARC kernels do not support futex_atomic_cmpxchg_inatomic. */ #if !defined __arch64__ && !defined __sparc_v9__ -# undef __ASSUME_FUTEX_LOCK_PI -# undef __ASSUME_REQUEUE_PI # undef __ASSUME_SET_ROBUST_LIST #endif + +#if !defined __arch64__ +# undef __ASSUME_ACCEPT_SYSCALL +# undef __ASSUME_CONNECT_SYSCALL +# undef __ASSUME_RECVFROM_SYSCALL +#else +/* sparc64 defines __NR_pause, however it is not supported (ENOSYS). + Undefine so pause.c can use a correct alternative. */ +# undef __NR_pause +#endif + +/* sparc only supports ipc syscall. */ +#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS + +/* Support for the renameat2 syscall was added in 3.16. */ +#if __LINUX_KERNEL_VERSION < 0x031000 +# undef __ASSUME_RENAMEAT2 +#endif + +/* SPARC kernel Kconfig does not define CONFIG_CLONE_BACKWARDS, however it + has the same ABI as if it did, implemented by sparc-specific code + (sparc_do_fork). + + It also has a unique return value convention: + + Parent --> %o0 == child's pid, %o1 == 0 + Child --> %o0 == parent's pid, %o1 == 1 + + Which required a special macro to correct issue the syscall + (INLINE_CLONE_SYSCALL). */ +#undef __ASSUME_CLONE_DEFAULT +#define __ASSUME_CLONE_BACKWARDS 1 |