* sysdeps/unix/sysv/linux/sh/bits/mman.h: Define MREMAP_FIXED.
authorRoland McGrath <roland@gnu.org>
Sun, 16 Oct 2005 11:38:59 +0000 (11:38 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 16 Oct 2005 11:38:59 +0000 (11:38 +0000)
ChangeLog
Makerules
nptl/ChangeLog
nptl/init.c
sysdeps/unix/sysv/linux/sh/bits/mman.h

index 46c4621..232bc07 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-10-16  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sysdeps/unix/sysv/linux/sh/bits/mman.h: Define MREMAP_FIXED.
+
 2005-08-05  Alfred M. Szmidt  <ams@gnu.org>
 
        [BZ #1252]
index cc8c3d8..3ffff58 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -676,7 +676,7 @@ include $(patsubst %,$(..)extra-modules.mk,$(modules-names))
 
 extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names))
 $(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \
-               $(objpfx)$(module).os $(common-objpfx)shlib.lds \
+               $(objpfx)%.os $(common-objpfx)shlib.lds \
                $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
        $(build-module)
 endif
index 3c8e73a..ef30df0 100644 (file)
@@ -1,3 +1,9 @@
+2005-10-16  Roland McGrath  <roland@redhat.com>
+
+       * init.c (__pthread_initialize_minimal_internal): Even when using a
+       compile-time default stack size, apply the minimum that allocate_stack
+       will require, and round up to page size.
+
 2005-10-10  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * Makefile ($(test-modules)): Remove static pattern rule.
index de70412..6a7fff9 100644 (file)
@@ -297,17 +297,22 @@ __pthread_initialize_minimal_internal (void)
       || limit.rlim_cur == RLIM_INFINITY)
     /* The system limit is not usable.  Use an architecture-specific
        default.  */
-    __default_stacksize = ARCH_STACK_DEFAULT_SIZE;
+    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
   else if (limit.rlim_cur < PTHREAD_STACK_MIN)
     /* The system limit is unusably small.
        Use the minimal size acceptable.  */
-    __default_stacksize = PTHREAD_STACK_MIN;
-  else
-    {
-      /* Round the resource limit up to page size.  */
-      const uintptr_t pagesz = __sysconf (_SC_PAGESIZE);
-      __default_stacksize = (limit.rlim_cur + pagesz - 1) & -pagesz;
-    }
+    limit.rlim_cur = PTHREAD_STACK_MIN;
+
+  /* Make sure it meets the minimum size that allocate_stack
+     (allocatestack.c) will demand, which depends on the page size.  */
+  const uintptr_t pagesz = __sysconf (_SC_PAGESIZE);
+  const size_t minstack = pagesz * 2 + __static_tls_size + MINIMAL_REST_STACK;
+  if (limit.rlim_cur < minstack)
+    limit.rlim_cur = minstack;
+
+  /* Round the resource limit up to page size.  */
+  limit.rlim_cur = (limit.rlim_cur + pagesz - 1) & -pagesz;
+  __default_stacksize = limit.rlim_cur;
 
   /* Get the size of the static and alignment requirements for the TLS
      block.  */
index 656b5b6..a3c690b 100644 (file)
@@ -78,6 +78,7 @@
 /* Flags for `mremap'.  */
 #ifdef __USE_GNU
 # define MREMAP_MAYMOVE        1
+# define MREMAP_FIXED  2
 #endif
 
 /* Advice to `madvise'.  */