summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-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
-rw-r--r--rt/tst-mqueue6.c10
6 files changed, 24 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 8c1a32149e..03fa31ddd2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2004-04-16 Ulrich Drepper <drepper@redhat.com>
+ * rt/tst-mqueue6.c (mqsend): Don't inline.
+ (mqrecv): Likewise.
+
* rt/tst-mqueue3.c (do_test): Cope with kernel without mq support.
* sysdeps/ieee754/bits/nan.h (__nan_union): Add __attribute_used__
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))
diff --git a/rt/tst-mqueue6.c b/rt/tst-mqueue6.c
index f4fdb02c6c..5c9ee69e1b 100644
--- a/rt/tst-mqueue6.c
+++ b/rt/tst-mqueue6.c
@@ -37,8 +37,8 @@
#if _POSIX_THREADS
# include <pthread.h>
-#define mqsend(q) (mqsend) (q, __LINE__)
-static inline int
+# define mqsend(q) (mqsend) (q, __LINE__)
+static int
(mqsend) (mqd_t q, int line)
{
char c;
@@ -50,8 +50,8 @@ static inline int
return 0;
}
-#define mqrecv(q) (mqrecv) (q, __LINE__)
-static inline int
+# define mqrecv(q) (mqrecv) (q, __LINE__)
+static int
(mqrecv) (mqd_t q, int line)
{
char c;
@@ -104,7 +104,7 @@ fct (union sigval s)
fct_err |= mqsend (q);
}
-#define TEST_FUNCTION do_test ()
+# define TEST_FUNCTION do_test ()
static int
do_test (void)
{