Remove __ASSUME_SIGNALFD4.

Current Linux kernel version requirements mean the signalfd4 syscall
can always be assumed to be available.  This patch removes
__ASSUME_SIGNALFD4 and associated conditionals.

Tested for x86_64 and x86 that installed stripped shared libraries are
unchanged by the patch.

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_SIGNALFD4):
	Remove macro.
	* sysdeps/unix/sysv/linux/signalfd.c: Do not include
	<kernel-features.h>.
	(signalfd) [__NR_signalfd4]: Make code unconditional.
	(signalfd) [!__ASSUME_SIGNALFD4]: Remove conditional code.
This commit is contained in:
Joseph Myers 2016-03-21 16:30:05 +00:00
parent 67b23376fb
commit 238d60ac9b
3 changed files with 10 additions and 26 deletions

View File

@ -1,3 +1,12 @@
2016-03-21 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_SIGNALFD4):
Remove macro.
* sysdeps/unix/sysv/linux/signalfd.c: Do not include
<kernel-features.h>.
(signalfd) [__NR_signalfd4]: Make code unconditional.
(signalfd) [!__ASSUME_SIGNALFD4]: Remove conditional code.
2016-03-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/unix/sysv/linux/spawni.c (__spawnix): Fix implict checks

View File

@ -83,7 +83,6 @@
2.6.27. */
#define __ASSUME_IN_NONBLOCK 1
#define __ASSUME_PIPE2 1
#define __ASSUME_SIGNALFD4 1
#define __ASSUME_DUP3 1
/* Support for accept4 functionality was added in 2.6.28, but for some

View File

@ -19,34 +19,10 @@
#include <signal.h>
#include <sys/signalfd.h>
#include <sysdep.h>
#include <kernel-features.h>
int
signalfd (int fd, const sigset_t *mask, int flags)
{
#ifdef __NR_signalfd4
int res = INLINE_SYSCALL (signalfd4, 4, fd, mask, _NSIG / 8, flags);
# ifndef __ASSUME_SIGNALFD4
if (res != -1 || errno != ENOSYS)
# endif
return res;
#endif
#ifndef __ASSUME_SIGNALFD4
/* The old system call has no flag parameter which is bad. So we have
to wait until we have to support to pass additional values to the
kernel (sys_indirect) before implementing setting flags like
O_NONBLOCK etc. */
if (flags != 0)
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
# ifdef __NR_signalfd
return INLINE_SYSCALL (signalfd, 3, fd, mask, _NSIG / 8);
# else
return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
# endif
#elif !defined __NR_signalfd4
# error "__ASSUME_SIGNALFD4 defined but not __NR_signalfd4"
#endif
return INLINE_SYSCALL (signalfd4, 4, fd, mask, _NSIG / 8, flags);
}