[PATCH 3/6] Split sparc out of main Linux kernel-features.h.

This patch splits sparc out of the main Linux kernel-features.h.

Not tested.

	* sysdeps/unix/sysv/linux/sparc/kernel-features.h: New file.
	* sysdeps/unix/sysv/linux/kernel-features.h [__sparc__]
	(__ASSUME_SOCKETCALL): Do not define.
	(__ASSUME_SET_ROBUST_LIST): Define unconditionally.
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
	[__sparc__] (__ASSUME_ACCEPT4_SYSCALL): Do not define.
	[__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
	(__ASSUME_REQUEUE_PI): Define unconditionally.
	[__LINUX_KERNEL_VERSION >= 0x020621 && __sparc__]
	(__ASSUME_RECVMMSG_SYSCALL): Do not define.
	[__sparc__] (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030000 && __sparc__]
	(__ASSUME_SENDMMSG_SYSCALL): Likewise.
	[__sparc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
This commit is contained in:
Joseph Myers 2014-07-17 17:52:58 +00:00
parent 083b1f7c12
commit 03f7731518
3 changed files with 72 additions and 27 deletions

View File

@ -1,5 +1,20 @@
2014-07-17 Joseph Myers <joseph@codesourcery.com> 2014-07-17 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/sparc/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__sparc__]
(__ASSUME_SOCKETCALL): Do not define.
(__ASSUME_SET_ROBUST_LIST): Define unconditionally.
(__ASSUME_FUTEX_LOCK_PI): Likewise.
[__sparc__] (__ASSUME_ACCEPT4_SYSCALL): Do not define.
[__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
(__ASSUME_REQUEUE_PI): Define unconditionally.
[__LINUX_KERNEL_VERSION >= 0x020621 && __sparc__]
(__ASSUME_RECVMMSG_SYSCALL): Do not define.
[__sparc__] (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
[__LINUX_KERNEL_VERSION >= 0x030000 && __sparc__]
(__ASSUME_SENDMMSG_SYSCALL): Likewise.
[__sparc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* sysdeps/unix/sysv/linux/i386/kernel-features.h: New file. * sysdeps/unix/sysv/linux/i386/kernel-features.h: New file.
* sysdeps/unix/sysv/linux/kernel-features.h [__i386__] * sysdeps/unix/sysv/linux/kernel-features.h [__i386__]
(__ASSUME_SOCKETCALL): Do not define. (__ASSUME_SOCKETCALL): Do not define.

View File

@ -46,8 +46,7 @@
architectures. */ architectures. */
#if defined __powerpc__ \ #if defined __powerpc__ \
|| defined __s390__ \ || defined __s390__ \
|| defined __sh__ \ || defined __sh__
|| defined __sparc__
# define __ASSUME_SOCKETCALL 1 # define __ASSUME_SOCKETCALL 1
#endif #endif
@ -89,15 +88,11 @@
/* Support for inter-process robust mutexes was added in 2.6.17 (but /* Support for inter-process robust mutexes was added in 2.6.17 (but
some architectures lack futex_atomic_cmpxchg_inatomic in some some architectures lack futex_atomic_cmpxchg_inatomic in some
configurations). */ configurations). */
#if !(defined __sparc__ && !defined __arch64__ && !defined __sparc_v9__) #define __ASSUME_SET_ROBUST_LIST 1
# define __ASSUME_SET_ROBUST_LIST 1
#endif
/* Support for PI futexes was added in 2.6.18 (but some architectures /* Support for PI futexes was added in 2.6.18 (but some architectures
lack futex_atomic_cmpxchg_inatomic in some configurations). */ lack futex_atomic_cmpxchg_inatomic in some configurations). */
#if !(defined __sparc__ && !defined __arch64__ && !defined __sparc_v9__) #define __ASSUME_FUTEX_LOCK_PI 1
# define __ASSUME_FUTEX_LOCK_PI 1
#endif
/* Support for private futexes was added in 2.6.22. */ /* Support for private futexes was added in 2.6.22. */
#define __ASSUME_PRIVATE_FUTEX 1 #define __ASSUME_PRIVATE_FUTEX 1
@ -136,14 +131,10 @@
/* The accept4 syscall was added for x86_64 and SPARC in 2.6.28, and /* The accept4 syscall was added for x86_64 and SPARC in 2.6.28, and
for PowerPC and SH in 2.6.37. */ for PowerPC and SH in 2.6.37. */
#if defined __sparc__ \ #if (__LINUX_KERNEL_VERSION >= 0x020625 \
|| (__LINUX_KERNEL_VERSION >= 0x020625 \ && (defined __powerpc__ || defined __sh__))
&& (defined __powerpc__ || defined __sh__))
# define __ASSUME_ACCEPT4_SYSCALL 1 # define __ASSUME_ACCEPT4_SYSCALL 1
#endif #endif
#ifdef __sparc__
# define __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL 1
#endif
#if defined __ASSUME_ACCEPT4_SOCKETCALL || defined __ASSUME_ACCEPT4_SYSCALL #if defined __ASSUME_ACCEPT4_SOCKETCALL || defined __ASSUME_ACCEPT4_SYSCALL
# define __ASSUME_ACCEPT4 1 # define __ASSUME_ACCEPT4 1
@ -159,9 +150,7 @@
/* Support for FUTEX_*_REQUEUE_PI was added in 2.6.31 (but some /* Support for FUTEX_*_REQUEUE_PI was added in 2.6.31 (but some
architectures lack futex_atomic_cmpxchg_inatomic in some architectures lack futex_atomic_cmpxchg_inatomic in some
configurations). */ configurations). */
#if !(defined __sparc__ && !defined __arch64__ && !defined __sparc_v9__) #define __ASSUME_REQUEUE_PI 1
# define __ASSUME_REQUEUE_PI 1
#endif
/* Support for recvmmsg functionality was added in 2.6.33. The macros /* Support for recvmmsg functionality was added in 2.6.33. The macros
defined correspond to those for accept4. */ defined correspond to those for accept4. */
@ -171,15 +160,10 @@
/* The recvmmsg syscall was added for i386, x86_64 and SPARC in /* The recvmmsg syscall was added for i386, x86_64 and SPARC in
2.6.33, and for PowerPC and SH in 2.6.37. */ 2.6.33, and for PowerPC and SH in 2.6.37. */
#if (__LINUX_KERNEL_VERSION >= 0x020621 \ #if (__LINUX_KERNEL_VERSION >= 0x020625 \
&& defined __sparc__) \ && (defined __powerpc__ || defined __sh__))
|| (__LINUX_KERNEL_VERSION >= 0x020625 \
&& (defined __powerpc__ || defined __sh__))
# define __ASSUME_RECVMMSG_SYSCALL 1 # define __ASSUME_RECVMMSG_SYSCALL 1
#endif #endif
#ifdef __sparc__
# define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1
#endif
#if defined __ASSUME_RECVMMSG_SOCKETCALL || defined __ASSUME_RECVMMSG_SYSCALL #if defined __ASSUME_RECVMMSG_SOCKETCALL || defined __ASSUME_RECVMMSG_SYSCALL
# define __ASSUME_RECVMMSG 1 # define __ASSUME_RECVMMSG 1
@ -210,11 +194,10 @@
/* The sendmmsg syscall was added for i386, x86_64, PowerPC, SH and /* The sendmmsg syscall was added for i386, x86_64, PowerPC, SH and
SPARC in 3.0. */ SPARC in 3.0. */
#if __LINUX_KERNEL_VERSION >= 0x030000 \ #if __LINUX_KERNEL_VERSION >= 0x030000 \
&& (defined __powerpc__ \ && (defined __powerpc__ || defined __sh__)
|| defined __sh__ || defined __sparc__)
# define __ASSUME_SENDMMSG_SYSCALL 1 # define __ASSUME_SENDMMSG_SYSCALL 1
#endif #endif
#if defined __powerpc__ || defined __sh__ || defined __sparc__ #if defined __powerpc__ || defined __sh__
# define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1 # define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1
#endif #endif

View File

@ -0,0 +1,47 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SPARC version.
Copyright (C) 1999-2014 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
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
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, see
<http://www.gnu.org/licenses/>. */
/* 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