[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r6755 - in /fsf/trunk/libc: ./ nptl/ nptl/sysdeps/x86_64/ sysdeps/unix/sysv/linux/i386/bits/ sysdeps/unix/sysv/linux/x86_64/...



Author: eglibc
Date: Sat Aug 16 00:07:22 2008
New Revision: 6755

Log:
Import glibc-mainline for 2008-08-16

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/allocatestack.c
    fsf/trunk/libc/nptl/sysdeps/x86_64/pthreaddef.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sat Aug 16 00:07:22 2008
@@ -1,3 +1,8 @@
+2008-08-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_STACK.
+	* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
+
 2008-08-14  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* sysdeps/x86_64/memset.S: Reduce size of tables for PIC.

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Sat Aug 16 00:07:22 2008
@@ -1,3 +1,12 @@
+2008-08-15  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
+	ARCH_RETRY_MMAP definitions.
+	* allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
+	Define MAP_STACK when not defined.
+	(allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS.  Remove
+	handling of ARCH_RETRY_MMAP.
+
 2008-07-30  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* tst-align2.c (f): Print message that f is reached.

Modified: fsf/trunk/libc/nptl/allocatestack.c
==============================================================================
--- fsf/trunk/libc/nptl/allocatestack.c (original)
+++ fsf/trunk/libc/nptl/allocatestack.c Sat Aug 16 00:07:22 2008
@@ -84,10 +84,10 @@
 #endif
 
 
-/* Let the architecture add some flags to the mmap() call used to
-   allocate stacks.  */
-#ifndef ARCH_MAP_FLAGS
-# define ARCH_MAP_FLAGS 0
+/* Newer kernels have the MAP_STACK flag to indicate a mapping is used for
+   a stack.  Use it when possible.  */
+#ifndef MAP_STACK
+# define MAP_STACK 0
 #endif
 
 /* This yields the pointer that TLS support code calls the thread pointer.  */
@@ -454,20 +454,14 @@
 #endif
 
 	  mem = mmap (NULL, size, prot,
-		      MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
+		      MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
 
 	  if (__builtin_expect (mem == MAP_FAILED, 0))
 	    {
-#ifdef ARCH_RETRY_MMAP
-	      mem = ARCH_RETRY_MMAP (size, prot);
-	      if (__builtin_expect (mem == MAP_FAILED, 0))
-#endif
-		{
-		  if (errno == ENOMEM)
-		    errno = EAGAIN;
-
-		  return errno;
-		}
+	      if (errno == ENOMEM)
+		__set_errno (EAGAIN);
+
+	       return errno;
 	    }
 
 	  /* SIZE is guaranteed to be greater than zero.

Modified: fsf/trunk/libc/nptl/sysdeps/x86_64/pthreaddef.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/x86_64/pthreaddef.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/x86_64/pthreaddef.h Sat Aug 16 00:07:22 2008
@@ -36,16 +36,6 @@
   ({ char *frame; asm ("movq %%rsp, %0" : "=r" (frame)); frame; })
 
 
-/* We prefer to have the stack allocated in the low 4GB since this
-   allows faster context switches.  */
-#define ARCH_MAP_FLAGS MAP_32BIT
-
-/* If it is not possible to allocate memory there retry without that
-   flag.  */
-#define ARCH_RETRY_MMAP(size, prot) \
-  mmap (NULL, size, prot, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)
-
-
 /* XXX Until we have a better place keep the definitions here.  */
 
 /* While there is no such syscall.  */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/bits/mman.h Sat Aug 16 00:07:22 2008
@@ -63,6 +63,7 @@
 # define MAP_NORESERVE	0x04000		/* Don't check for reservations.  */
 # define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables.  */
 # define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */
+# define MAP_STACK	0x20000		/* Allocation is for a stack.  */
 #endif
 
 /* Flags to `msync'.  */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/mman.h Sat Aug 16 00:07:22 2008
@@ -64,6 +64,7 @@
 # define MAP_NORESERVE	0x04000		/* Don't check for reservations.  */
 # define MAP_POPULATE	0x08000		/* Populate (prefault) pagetables.  */
 # define MAP_NONBLOCK	0x10000		/* Do not block on IO.  */
+# define MAP_STACK	0x20000		/* Allocation is for a stack.  */
 #endif
 
 /* Flags to `msync'.  */