diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | nptl/ChangeLog | 8 | ||||
-rw-r--r-- | nptl/allocatestack.c | 4 | ||||
-rw-r--r-- | nptl/descr.h | 4 | ||||
-rw-r--r-- | nptl/pthread_getattr_np.c | 2 | ||||
-rw-r--r-- | rt/tst-mqueue6.c | 10 |
6 files changed, 24 insertions, 7 deletions
@@ -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) { |