[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>
* 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/kernel-features.h [__i386__]
(__ASSUME_SOCKETCALL): Do not define.

View File

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