Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Joseph Myers committed Mar 21, 2016
1 parent 67b2337 commit 238d60a
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 26 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
@@ -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
Expand Down
1 change: 0 additions & 1 deletion sysdeps/unix/sysv/linux/kernel-features.h
Expand Up @@ -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
Expand Down
26 changes: 1 addition & 25 deletions sysdeps/unix/sysv/linux/signalfd.c
Expand Up @@ -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);
}

0 comments on commit 238d60a

Please sign in to comment.