This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-63-gdd481cc


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  dd481ccffd926ea70b107a98a9f4eb00822070c4 (commit)
      from  5d7b57cad568188f97154c790f169d97b67cd54e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=dd481ccffd926ea70b107a98a9f4eb00822070c4

commit dd481ccffd926ea70b107a98a9f4eb00822070c4
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Feb 20 17:50:31 2014 +0000

    Fix __ASSUME_ACCEPT4 issues (bug 16609).
    
    In <https://sourceware.org/ml/libc-alpha/2013-12/msg00008.html>,
    Aurelien noted issues with the definition of __ASSUME_ACCEPT4, which I
    discussed in more detail in
    <https://sourceware.org/ml/libc-alpha/2013-12/msg00014.html>; these
    are now bug 16609.
    
    As previously noted, __ASSUME_ACCEPT4 is used in two ways:
    
    * In OS-independent code, to mean "accept4 can be assumed to work
      rather than fail with ENOSYS".  It doesn't matter whether it's
      implemented with socketcall or a separate syscall.
    
    * In Linux-specific code, to mean "the socketcall multiplex syscall
      can be assumed to handle the accept4 operation.  When used in
      Linux-specific code, it *never* refers to anything relating to the
      accept4 syscall, only to the socketcall multiplexer.
    
    This patch splits the macro into separate __ASSUME_ACCEPT4_SOCKETCALL,
    __ASSUME_ACCEPT4_SYSCALL and __ASSUME_ACCEPT4 to clarify the different
    cases involved.  A macro __ASSUME_SOCKETCALL is added for convenience
    in writing logic relating to all socketcall architectures.  In
    addition, to address the issue of architectures where socketcall
    support for accept4 was added before a separate syscall was added (and
    so the separate syscall should not be used unless known to be present
    or fallback to socketcall is available), a fourth macro
    __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL is added to indicate that the
    syscall became available at the same time as socketcall support.  This
    is then used in the relevant places in a conditional determining
    whether to undefine __NR_accept4 (the simple approach to avoiding the
    syscall's presence causing problems; I didn't try to implement runtime
    fallback from the syscall to socketcall).
    
    Architecture-specific note: alpha defined __ASSUME_ACCEPT4 for 2.6.33
    and later, but actually the syscall was added for alpha in 3.2, so
    this patch uses the correct condition for __ASSUME_ACCEPT4_SYSCALL
    there.
    
    Tested x86_64, including that disassembly of the installed shared
    libraries is unchanged by this patch.
    
    	[BZ #16609]
    	* sysdeps/unix/sysv/linux/kernel-features.h [__i386__ ||
    	__powerpc__ || __s390__ || __sh__ || __sparc__]
    	(__ASSUME_SOCKETCALL): Define.
    	[__LINUX_KERNEL_VERSION && __ASSUME_SOCKETCALL]
    	(__ASSUME_ACCEPT4_SOCKETCALL): Likewise.
    	[(__LINUX_KERNEL_VERSION >= 0x02061c && (__x86_64__ || __sparc__))
    	|| (__LINUX_KERNEL_VERSION >= 0x020625 && (__powerpc__ ||
    	__sh__))] (__ASSUME_ACCEPT4_SYSCALL): Likewise.
    	[__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
    	[__ASSUME_ACCEPT4_SOCKETCALL || __ASSUME_ACCEPT4_SYSCALL]
    	(__ASSUME_ACCEPT4): Define instead of using previous
    	[__LINUX_KERNEL_VERSION >= 0x02061c && (__i386__ || __x86_64__ ||
    	__powerpc__ || __sparc__ || __s390__)] condition.
    	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
    	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.
    	* sysdeps/unix/sysv/linux/accept4.c [__ASSUME_SOCKETCALL &&
    	!__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL &&
    	!__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine.
    	[!__ASSUME_ACCEPT4]: Change condition to
    	[!__ASSUME_ACCEPT4_SOCKETCALL].
    	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
    	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.  Correct
    	condition to [__LINUX_KERNEL_VERSION >= 0x030200].
    	* sysdeps/unix/sysv/linux/arm/kernel-features.h
    	[__LINUX_KERNEL_VERSION >= 0x020624] (__ASSUME_ACCEPT4): Change to
    	__ASSUME_ACCEPT4_SYSCALL.
    	* sysdeps/unix/sysv/linux/i386/accept4.S [__ASSUME_ACCEPT4]:
    	Change conditions to [__ASSUME_ACCEPT4_SOCKETCALL].
    	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
    	[__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_ACCEPT4): Change to
    	__ASSUME_ACCEPT4_SYSCALL.
    	* sysdeps/unix/sysv/linux/internal_accept4.S [__ASSUME_SOCKETCALL
    	&& !__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL &&
    	!__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine.
    	[__ASSUME_ACCEPT4]: Change condition to
    	[__ASSUME_ACCEPT4_SOCKETCALL].
    	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
    	(__ASSUME_SOCKETCALL): Define.
    	[__LINUX_KERNEL_VERSION >= 0x02061c] (__ASSUME_ACCEPT4): Remove.
    	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
    	(__ASSUME_SOCKETCALL): Define.
    	(__ASSUME_ACCEPT4): Remove.
    	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_ACCEPT4_SYSCALL):
    	Define.
    	* sysdeps/unix/sysv/linux/mips/kernel-features.h
    	[__LINUX_KERNEL_VERSION >= 0x02061f] (__ASSUME_ACCEPT4_SYSCALL):
    	Likewise.
    	* sysdeps/unix/sysv/linux/tile/kernel-features.h
    	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.
    
    	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
    	[__LINUX_KERNEL_VERSION >= 0x020622] (__ASSUME_ACCEPT4_SYSCALL):
    	Define.

diff --git a/ChangeLog b/ChangeLog
index 52d5256..a7b2fd9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,56 @@
 2014-02-20  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #16609]
+	* sysdeps/unix/sysv/linux/kernel-features.h [__i386__ ||
+	__powerpc__ || __s390__ || __sh__ || __sparc__]
+	(__ASSUME_SOCKETCALL): Define.
+	[__LINUX_KERNEL_VERSION && __ASSUME_SOCKETCALL]
+	(__ASSUME_ACCEPT4_SOCKETCALL): Likewise.
+	[(__LINUX_KERNEL_VERSION >= 0x02061c && (__x86_64__ || __sparc__))
+	|| (__LINUX_KERNEL_VERSION >= 0x020625 && (__powerpc__ ||
+	__sh__))] (__ASSUME_ACCEPT4_SYSCALL): Likewise.
+	[__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
+	[__ASSUME_ACCEPT4_SOCKETCALL || __ASSUME_ACCEPT4_SYSCALL]
+	(__ASSUME_ACCEPT4): Define instead of using previous
+	[__LINUX_KERNEL_VERSION >= 0x02061c && (__i386__ || __x86_64__ ||
+	__powerpc__ || __sparc__ || __s390__)] condition.
+	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.
+	* sysdeps/unix/sysv/linux/accept4.c [__ASSUME_SOCKETCALL &&
+	!__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL &&
+	!__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine.
+	[!__ASSUME_ACCEPT4]: Change condition to
+	[!__ASSUME_ACCEPT4_SOCKETCALL].
+	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
+	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.  Correct
+	condition to [__LINUX_KERNEL_VERSION >= 0x030200].
+	* sysdeps/unix/sysv/linux/arm/kernel-features.h
+	[__LINUX_KERNEL_VERSION >= 0x020624] (__ASSUME_ACCEPT4): Change to
+	__ASSUME_ACCEPT4_SYSCALL.
+	* sysdeps/unix/sysv/linux/i386/accept4.S [__ASSUME_ACCEPT4]:
+	Change conditions to [__ASSUME_ACCEPT4_SOCKETCALL].
+	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
+	[__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_ACCEPT4): Change to
+	__ASSUME_ACCEPT4_SYSCALL.
+	* sysdeps/unix/sysv/linux/internal_accept4.S [__ASSUME_SOCKETCALL
+	&& !__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL &&
+	!__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine.
+	[__ASSUME_ACCEPT4]: Change condition to
+	[__ASSUME_ACCEPT4_SOCKETCALL].
+	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
+	(__ASSUME_SOCKETCALL): Define.
+	[__LINUX_KERNEL_VERSION >= 0x02061c] (__ASSUME_ACCEPT4): Remove.
+	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+	(__ASSUME_SOCKETCALL): Define.
+	(__ASSUME_ACCEPT4): Remove.
+	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_ACCEPT4_SYSCALL):
+	Define.
+	* sysdeps/unix/sysv/linux/mips/kernel-features.h
+	[__LINUX_KERNEL_VERSION >= 0x02061f] (__ASSUME_ACCEPT4_SYSCALL):
+	Likewise.
+	* sysdeps/unix/sysv/linux/tile/kernel-features.h
+	(__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL.
+
 	* sysdeps/unix/sysv/linux/arm/bits/hwcap.h (HWCAP_ARM_VFPD32): New
 	macro.
 	(HWCAP_ARM_LPAE): Likewise.
diff --git a/NEWS b/NEWS
index 6de1d45..3813155 100644
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.20
 
 * The following bugs are resolved with this release:
 
-  15894, 16447, 16545, 16574.
+  15894, 16447, 16545, 16574, 16609.
 
 * The am33 port, which had not worked for several years, has been removed
   from ports.
diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa
index c98364b..bd415aa 100644
--- a/ports/ChangeLog.hppa
+++ b/ports/ChangeLog.hppa
@@ -1,3 +1,10 @@
+2014-02-20  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #16609]
+	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
+	[__LINUX_KERNEL_VERSION >= 0x020622] (__ASSUME_ACCEPT4_SYSCALL):
+	Define.
+
 2014-02-12  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_BSD]: Change
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index e050c27..b8abd08 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -30,4 +30,9 @@
 /* PA-RISC 2.6.9 kernels had the first LWS CAS support */
 #define __ASSUME_LWS_CAS		1
 
+/* Support for the accept4 syscall was added in 2.6.34.  */
+#if __LINUX_KERNEL_VERSION >= 0x020622
+# define __ASSUME_ACCEPT4_SYSCALL	1
+#endif
+
 #include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
index c736eb9..222b61c 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
@@ -24,7 +24,7 @@
 /* AArch64 support starts with 3.7.0, guaranteeing many kernel
    features.  */
 
-#define __ASSUME_ACCEPT4                1
+#define __ASSUME_ACCEPT4_SYSCALL        1
 #define __ASSUME_DUP3                   1
 #define __ASSUME_EVENTFD2		1
 #define __ASSUME_IN_NONBLOCK            1
diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c
index 019e96b..a017224 100644
--- a/sysdeps/unix/sysv/linux/accept4.c
+++ b/sysdeps/unix/sysv/linux/accept4.c
@@ -24,6 +24,14 @@
 #include <sys/syscall.h>
 #include <kernel-features.h>
 
+/* Do not use the accept4 syscall on socketcall architectures unless
+   it was added at the same time as the socketcall support or can be
+   assumed to be present.  */
+#if defined __ASSUME_SOCKETCALL \
+    && !defined __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL \
+    && !defined __ASSUME_ACCEPT4_SYSCALL
+# undef __NR_accept4
+#endif
 
 #ifdef __NR_accept4
 int
@@ -42,7 +50,7 @@ accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
   return result;
 }
 #elif defined __NR_socketcall
-# ifndef __ASSUME_ACCEPT4
+# ifndef __ASSUME_ACCEPT4_SOCKETCALL
 extern int __internal_accept4 (int fd, __SOCKADDR_ARG addr,
 			       socklen_t *addr_len, int flags)
      attribute_hidden;
@@ -83,7 +91,8 @@ accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
   return -1;
 }
 # else
-/* When __ASSUME_ACCEPT4 accept4 is defined in internal_accept4.S.  */
+/* When __ASSUME_ACCEPT4_SOCKETCALL accept4 is defined in
+   internal_accept4.S.  */
 # endif
 #else
 int
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index 7c38854..8cceb34 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -42,9 +42,9 @@
 # define __ASSUME_SIGNALFD4 1
 #endif
 
-/* Support for accept4 was added for alpha after 2.6.33-rc1.  */
-#if __LINUX_KERNEL_VERSION >= 0x020621
-# define __ASSUME_ACCEPT4      1
+/* Support for accept4 was added for alpha in 3.2.  */
+#if __LINUX_KERNEL_VERSION >= 0x030200
+# define __ASSUME_ACCEPT4_SYSCALL      1
 #endif
 
 #include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index 9d7ef87..304f88d 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -33,7 +33,7 @@
 
 /* Support for the accept4 syscall was added in 2.6.36.  */
 #if __LINUX_KERNEL_VERSION >= 0x020624
-# define __ASSUME_ACCEPT4	1
+# define __ASSUME_ACCEPT4_SYSCALL	1
 #endif
 
 #include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/i386/accept4.S b/sysdeps/unix/sysv/linux/i386/accept4.S
index cdce27b..2021399 100644
--- a/sysdeps/unix/sysv/linux/i386/accept4.S
+++ b/sysdeps/unix/sysv/linux/i386/accept4.S
@@ -23,7 +23,7 @@
 #define EINVAL	22
 #define ENOSYS	38
 
-#ifdef __ASSUME_ACCEPT4
+#ifdef __ASSUME_ACCEPT4_SOCKETCALL
 # define errlabel SYSCALL_ERROR_LABEL
 #else
 # define errlabel .Lerr
@@ -114,7 +114,7 @@ ENTRY (__libc_accept4)
 	ret
 #endif
 
-#ifndef __ASSUME_ACCEPT4
+#ifndef __ASSUME_ACCEPT4_SOCKETCALL
 	/* The kernel returns -EINVAL for unknown socket operations.
 	   We need to convert that error to an ENOSYS error.  */
 .Lerr:	cmpl $-EINVAL, %eax
diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
index 340f679..5c7c4eb 100644
--- a/sysdeps/unix/sysv/linux/ia64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
@@ -49,7 +49,7 @@
 
 /* Support for the accept4 syscall was added in 3.3.  */
 #if __LINUX_KERNEL_VERSION >= 0x030300
-# define __ASSUME_ACCEPT4	1
+# define __ASSUME_ACCEPT4_SYSCALL	1
 #endif
 
 #include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/internal_accept4.S b/sysdeps/unix/sysv/linux/internal_accept4.S
index ffc5536..f0c61b5 100644
--- a/sysdeps/unix/sysv/linux/internal_accept4.S
+++ b/sysdeps/unix/sysv/linux/internal_accept4.S
@@ -1,8 +1,18 @@
 #include <kernel-features.h>
 #include <sys/syscall.h>
+
+/* Do not use the accept4 syscall on socketcall architectures unless
+   it was added at the same time as the socketcall support or can be
+   assumed to be present.  */
+#if defined __ASSUME_SOCKETCALL \
+    && !defined __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL \
+    && !defined __ASSUME_ACCEPT4_SYSCALL
+# undef __NR_accept4
+#endif
+
 #if !defined __NR_accept4 && defined __NR_socketcall
 # define socket	accept4
-# ifdef __ASSUME_ACCEPT4
+# ifdef __ASSUME_ACCEPT4_SOCKETCALL
 #  define __socket accept4
 # else
 #  define __socket __internal_accept4
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 784f4dd..b6d7714 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -40,6 +40,18 @@
 /* The sendfile syscall was introduced in 2.2.0.  */
 #define __ASSUME_SENDFILE		1
 
+/* Some architectures use the socketcall multiplexer for some or all
+   socket-related operations, via a socket.S file in glibc, instead of
+   separate syscalls.  __ASSUME_SOCKETCALL is defined for such
+   architectures.  */
+#if defined __i386__ \
+    || defined __powerpc__ \
+    || defined __s390__ \
+    || defined __sh__ \
+    || defined __sparc__
+# define __ASSUME_SOCKETCALL		1
+#endif
+
 /* Linux 2.3.39 introduced IPC64.  Except for powerpc.  Linux 2.4.0 on
    PPC introduced a correct IPC64.  But PowerPC64 does not support a
    separate 64-bit syscall, already 64-bit.  */
@@ -164,10 +176,34 @@
 # define __ASSUME_DUP3		1
 #endif
 
-/* Support for the accept4 syscall was added in 2.6.28.  */
-#if __LINUX_KERNEL_VERSION >= 0x02061c \
-    && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
-	|| defined __sparc__ || defined __s390__)
+/* Support for accept4 functionality was added in 2.6.28, but for some
+   architectures using a separate syscall rather than socketcall that
+   syscall was only added later, and some architectures first had
+   socketcall support then a separate syscall.  Define
+   __ASSUME_ACCEPT4_SOCKETCALL if glibc uses socketcall on this
+   architecture and accept4 is available through socketcall,
+   __ASSUME_ACCEPT4_SYSCALL if it is available through a separate
+   syscall, __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL if it became
+   available through a separate syscall at the same time as through
+   socketcall, and __ASSUME_ACCEPT4 if the accept4 function is known
+   to work.  */
+#if __LINUX_KERNEL_VERSION >= 0x02061c && defined __ASSUME_SOCKETCALL
+# define __ASSUME_ACCEPT4_SOCKETCALL	1
+#endif
+
+/* The accept4 syscall was added for x86_64 and SPARC in 2.6.28, and
+   for PowerPC and SH in 2.6.37.  */
+#if (__LINUX_KERNEL_VERSION >= 0x02061c			\
+     && (defined __x86_64__ || defined __sparc__))	\
+    || (__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
 #endif
 
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index 3b05e96..cb8915f 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -17,6 +17,9 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* m68k uses socketcall.  */
+#define __ASSUME_SOCKETCALL	1
+
 /* Many syscalls were added in 2.6.10 for m68k.  */
 #define __ASSUME_UTIMES	1
 
@@ -35,11 +38,6 @@
 # define __ASSUME_DUP3		1
 #endif
 
-/* Support for the accept4 syscall was added in 2.6.28.  */
-#if __LINUX_KERNEL_VERSION >= 0x02061c
-# define __ASSUME_ACCEPT4	1
-#endif
-
 #include_next <kernel-features.h>
 
 /* These syscalls were added only in 3.0 for m68k.  */
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index dcc0ac9..413b4a0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -16,6 +16,9 @@
    <http://www.gnu.org/licenses/>.  */
 
 
+/* MicroBlaze uses socketcall.  */
+#define __ASSUME_SOCKETCALL	1
+
 /* MicroBlaze glibc support starts with 2.6.30, guaranteeing many kernel features.  */
 #define __ASSUME_UTIMES         1
 #define __ASSUME_O_CLOEXEC      1
@@ -24,7 +27,11 @@
 #define __ASSUME_PIPE2          1
 #define __ASSUME_EVENTFD2       1
 #define __ASSUME_SIGNALFD4      1
-#define __ASSUME_ACCEPT4        1
 #define __ASSUME_DUP3           1
 
+/* Support for the accept4 syscall was added in 2.6.33.  */
+#if __LINUX_KERNEL_VERSION >= 0x020621
+# define __ASSUME_ACCEPT4_SYSCALL        1
+#endif
+
 #include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index 1c83ee5..94deaf9 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -31,6 +31,11 @@
 # define __ASSUME_SIGNALFD4	1
 #endif
 
+/* Support for the accept4 syscall was added in 2.6.31.  */
+#if __LINUX_KERNEL_VERSION >= 0x02061f
+# define __ASSUME_ACCEPT4_SYSCALL	1
+#endif
+
 #include_next <kernel-features.h>
 
 /* The n32 syscall ABI did not have a getdents64 syscall until
diff --git a/sysdeps/unix/sysv/linux/tile/kernel-features.h b/sysdeps/unix/sysv/linux/tile/kernel-features.h
index 5b81128..e339e7a 100644
--- a/sysdeps/unix/sysv/linux/tile/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/tile/kernel-features.h
@@ -25,7 +25,7 @@
 #define __ASSUME_PIPE2			1
 #define __ASSUME_EVENTFD2		1
 #define __ASSUME_SIGNALFD4		1
-#define __ASSUME_ACCEPT4		1
+#define __ASSUME_ACCEPT4_SYSCALL	1
 #define __ASSUME_DUP3			1
 
 #include_next <kernel-features.h>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   51 ++++++++++++++++++++
 NEWS                                               |    2 +-
 ports/ChangeLog.hppa                               |    7 +++
 .../sysdeps/unix/sysv/linux/hppa/kernel-features.h |    5 ++
 sysdeps/unix/sysv/linux/aarch64/kernel-features.h  |    2 +-
 sysdeps/unix/sysv/linux/accept4.c                  |   13 ++++-
 sysdeps/unix/sysv/linux/alpha/kernel-features.h    |    6 +-
 sysdeps/unix/sysv/linux/arm/kernel-features.h      |    2 +-
 sysdeps/unix/sysv/linux/i386/accept4.S             |    4 +-
 sysdeps/unix/sysv/linux/ia64/kernel-features.h     |    2 +-
 sysdeps/unix/sysv/linux/internal_accept4.S         |   12 ++++-
 sysdeps/unix/sysv/linux/kernel-features.h          |   44 +++++++++++++++--
 sysdeps/unix/sysv/linux/m68k/kernel-features.h     |    8 +--
 .../unix/sysv/linux/microblaze/kernel-features.h   |    9 +++-
 sysdeps/unix/sysv/linux/mips/kernel-features.h     |    5 ++
 sysdeps/unix/sysv/linux/tile/kernel-features.h     |    2 +-
 16 files changed, 151 insertions(+), 23 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]