about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog8
-rw-r--r--nptl/allocatestack.c4
-rw-r--r--nptl/descr.h4
-rw-r--r--nptl/pthread_getattr_np.c2
4 files changed, 16 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d1f5229da9..c37f1c9c09 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,11 @@
+2004-04-16  Ulrich Drepper  <drepper@redhat.com>
+
+	* allocatestack.c (allocate_stack): Set reported_guardsize
+	unconditionally.
+	* pthread_getattr_np.c (pthread_getattr_np): Use
+	reported_guardsize instead of guardsize.
+	* descr.h (struct pthread): Add reported_guardsize field.
+
 2004-04-13  Jakub Jelinek  <jakub@redhat.com>
 
 	* sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index 4b5af82f06..33fbbaa850 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -618,6 +618,10 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 
 	  pd->guardsize = guardsize;
 	}
+      /* The pthread_getattr_np() calls need to get passed the size
+	 requested in the attribute, regardless of how large the
+	 actually used guardsize is.  */
+      pd->reported_guardsize = guardsize;
     }
 
 #ifndef __ASSUME_CLONE_STOPPED
diff --git a/nptl/descr.h b/nptl/descr.h
index a6e35ba3db..3611698048 100644
--- a/nptl/descr.h
+++ b/nptl/descr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -236,6 +236,8 @@ struct pthread
   size_t stackblock_size;
   /* Size of the included guard area.  */
   size_t guardsize;
+  /* This is what the user specified and what we will report.  */
+  size_t reported_guardsize;
 
   /* Resolver state.  */
   struct __res_state res;
diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c
index d0c2c8b880..ba720af6cd 100644
--- a/nptl/pthread_getattr_np.c
+++ b/nptl/pthread_getattr_np.c
@@ -59,7 +59,7 @@ pthread_getattr_np (thread_id, attr)
     iattr->flags |= ATTR_FLAG_DETACHSTATE;
 
   /* This is the guardsize after adjusting it.  */
-  iattr->guardsize = thread->guardsize;
+  iattr->guardsize = thread->reported_guardsize;
 
   /* The sizes are subject to alignment.  */
   if (__builtin_expect (thread->stackblock != NULL, 1))