summaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog35
-rw-r--r--linuxthreads/Makefile4
-rw-r--r--linuxthreads/descr.h4
-rw-r--r--linuxthreads/pthread.c3
-rw-r--r--linuxthreads/specific.c14
-rw-r--r--linuxthreads/sysdeps/alpha/tls.h9
-rw-r--r--linuxthreads/sysdeps/i386/Makefile1
-rw-r--r--linuxthreads/sysdeps/i386/tls.h9
-rw-r--r--linuxthreads/sysdeps/ia64/tls.h9
-rw-r--r--linuxthreads/sysdeps/powerpc/tls.h15
-rw-r--r--linuxthreads/sysdeps/s390/tls.h9
-rw-r--r--linuxthreads/sysdeps/sh/tls.h9
-rw-r--r--linuxthreads/sysdeps/sparc/tls.h9
-rw-r--r--linuxthreads/sysdeps/x86_64/tls.h9
14 files changed, 28 insertions, 111 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 4cbcfbb7a3..9577130e10 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,38 +1,3 @@
-2005-02-09 Daniel Jacobowitz <dan@codesourcery.com>
-
- * descr.h (__pthread_find_self, thread_self): Mark as pure
- instead of const.
-
-2005-02-07 Jakub Jelinek <jakub@redhat.com>
-
- * specific.c (pthread_key_delete): If pthread_create has not been
- called yet, clear p_specific for the current thread.
- * Makefile (tests): Add tst-tsd1.
- * tst-tsd1.c: New test.
-
-2005-01-08 Andreas Jaeger <aj@suse.de>
-
- * pthread.c (init_one_static_tls): Adjust initialization of DTV
- entry for static tls deallocation fix.
-
- * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
- also contains information whether the memory pointed to is static
- TLS or not, include <stdbool.h>.
- * sysdeps/i386/tls.h: Likewise.
- * sysdeps/ia64/tls.h: Likewise.
- * sysdeps/powerpc/tls.h: Likewise.
- * sysdeps/s390/tls.h: Likewise.
- * sysdeps/sh/tls.h: Likewise.
- * sysdeps/sparc/tls.h: Likewise.
- * sysdeps/x86_64/tls.h: Likewise.
-
-2004-12-21 Jakub Jelinek <jakub@redhat.com>
-
- * Makefile (tests): Add tst-align.
- * tst-align.c: New test.
- * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Add
- -mpreferred-stack-boundary=4.
-
2004-12-12 Ulrich Drepper <drepper@redhat.com>
* internals.h: Include <stdbool.h> to match includes used in nptl.
diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile
index c2b548b38b..f4c9f2a916 100644
--- a/linuxthreads/Makefile
+++ b/linuxthreads/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1996-2003, 2004 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -111,7 +111,7 @@ tests = ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 $(librt-tests) ex12 ex13 joinrace \
ex17 ex18 tst-cancel tst-context bug-sleep \
tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel4 tst-cancel5 \
tst-cancel6 tst-cancel7 tst-cancel8 tst-popen tst-popen2 tst-attr1 \
- tst-stack1 tst-align tst-tsd1
+ tst-stack1
test-srcs = tst-signal
# These tests are linked with libc before libpthread
tests-reverse += tst-cancel5
diff --git a/linuxthreads/descr.h b/linuxthreads/descr.h
index 2b1e49a0ba..bea8b912f7 100644
--- a/linuxthreads/descr.h
+++ b/linuxthreads/descr.h
@@ -239,9 +239,9 @@ extern int __pthread_nonstandard_stacks;
/* Recover thread descriptor for the current thread */
-extern pthread_descr __pthread_find_self (void) __attribute__ ((pure));
+extern pthread_descr __pthread_find_self (void) __attribute__ ((const));
-static inline pthread_descr thread_self (void) __attribute__ ((pure));
+static inline pthread_descr thread_self (void) __attribute__ ((const));
static inline pthread_descr thread_self (void)
{
#ifdef THREAD_SELF
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index 39863f2b54..24f0eb02b0 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -482,8 +482,7 @@ init_one_static_tls (pthread_descr descr, struct link_map *map)
# endif
/* Fill in the DTV slot so that a later LD/GD access will find it. */
- dtv[map->l_tls_modid].pointer.val = dest;
- dtv[map->l_tls_modid].pointer.is_static = true;
+ dtv[map->l_tls_modid].pointer = dest;
/* Initialize the memory. */
memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
diff --git a/linuxthreads/specific.c b/linuxthreads/specific.c
index 92eec3d99a..f54fabaeb9 100644
--- a/linuxthreads/specific.c
+++ b/linuxthreads/specific.c
@@ -104,16 +104,15 @@ int pthread_key_delete(pthread_key_t key)
that if the key is reallocated later by pthread_key_create, its
associated values will be NULL in all threads.
- If no threads have been created yet, clear it just in the
- current thread. */
+ Do nothing if no threads have been created yet. */
- struct pthread_key_delete_helper_args args;
- args.idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
- args.idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
if (__pthread_manager_request != -1)
{
+ struct pthread_key_delete_helper_args args;
struct pthread_request request;
+ args.idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
+ args.idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
args.self = 0;
request.req_thread = self;
@@ -125,11 +124,6 @@ int pthread_key_delete(pthread_key_t key)
(char *) &request, sizeof(request)));
suspend(self);
}
- else
- {
- if (self->p_specific[args.idx1st] != NULL)
- self->p_specific[args.idx1st][args.idx2nd] = NULL;
- }
pthread_mutex_unlock(&pthread_keys_mutex);
return 0;
diff --git a/linuxthreads/sysdeps/alpha/tls.h b/linuxthreads/sysdeps/alpha/tls.h
index 1eabf5b890..9e15318b79 100644
--- a/linuxthreads/sysdeps/alpha/tls.h
+++ b/linuxthreads/sysdeps/alpha/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/Alpha version.
- Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,18 +23,13 @@
#ifndef __ASSEMBLER__
# include <pt-machine.h>
-# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
diff --git a/linuxthreads/sysdeps/i386/Makefile b/linuxthreads/sysdeps/i386/Makefile
index 418fa5c6ef..45183d1cd3 100644
--- a/linuxthreads/sysdeps/i386/Makefile
+++ b/linuxthreads/sysdeps/i386/Makefile
@@ -15,7 +15,6 @@ CFLAGS-pthread.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
CFLAGS-ptlongjmp.c += -fno-omit-frame-pointer
CFLAGS-semaphore.c += -fno-omit-frame-pointer
CFLAGS-sighandler.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
-CFLAGS-tst-align.c += -mpreferred-stack-boundary=4
endif
ifeq ($(subdir),csu)
diff --git a/linuxthreads/sysdeps/i386/tls.h b/linuxthreads/sysdeps/i386/tls.h
index f5d555baec..d296340ad8 100644
--- a/linuxthreads/sysdeps/i386/tls.h
+++ b/linuxthreads/sysdeps/i386/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. linuxthreads/i386 version.
- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,7 +24,6 @@
# include <pt-machine.h>
#ifndef __ASSEMBLER__
-# include <stdbool.h>
# include <stddef.h>
# include <stdint.h>
@@ -32,11 +31,7 @@
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
diff --git a/linuxthreads/sysdeps/ia64/tls.h b/linuxthreads/sysdeps/ia64/tls.h
index fe8fcd15f8..6bdf819d8d 100644
--- a/linuxthreads/sysdeps/ia64/tls.h
+++ b/linuxthreads/sysdeps/ia64/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/IA-64 version.
- Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,18 +24,13 @@
# include <dl-sysdep.h>
# include <pt-machine.h>
-# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
#else /* __ASSEMBLER__ */
diff --git a/linuxthreads/sysdeps/powerpc/tls.h b/linuxthreads/sysdeps/powerpc/tls.h
index 35472081d6..fda953976e 100644
--- a/linuxthreads/sysdeps/powerpc/tls.h
+++ b/linuxthreads/sysdeps/powerpc/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/PPC version.
- Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,18 +23,13 @@
#ifndef __ASSEMBLER__
# include <pt-machine.h>
-# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
#else /* __ASSEMBLER__ */
@@ -112,9 +107,9 @@ typedef struct
/* Code to initially initialize the thread pointer. This might need
special attention since 'errno' is not yet available and if the
operation can cause a failure 'errno' must not be touched.
-
- The global register variable is declared in pt-machine.h with the
- wrong type, so we need some extra casts to get the desired result.
+
+ The global register variable is declared in pt-machine.h with the
+ wrong type, so we need some extra casts to get the desired result.
This avoids a lvalue cast that gcc-3.4 does not like. */
# define TLS_INIT_TP(TCBP, SECONDCALL) \
(__thread_self = (struct _pthread_descr_struct *) \
diff --git a/linuxthreads/sysdeps/s390/tls.h b/linuxthreads/sysdeps/s390/tls.h
index 00a4df9382..f420195bd2 100644
--- a/linuxthreads/sysdeps/s390/tls.h
+++ b/linuxthreads/sysdeps/s390/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/s390 version.
- Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,18 +23,13 @@
#ifndef __ASSEMBLER__
# include <pt-machine.h>
-# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
typedef struct
diff --git a/linuxthreads/sysdeps/sh/tls.h b/linuxthreads/sysdeps/sh/tls.h
index fbc6f01151..bc9d44fa85 100644
--- a/linuxthreads/sysdeps/sh/tls.h
+++ b/linuxthreads/sysdeps/sh/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. linuxthreads/SH version.
- Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,7 +24,6 @@
# include <pt-machine.h>
#ifndef __ASSEMBLER__
-# include <stdbool.h>
# include <stddef.h>
# include <stdint.h>
@@ -32,11 +31,7 @@
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
#else /* __ASSEMBLER__ */
diff --git a/linuxthreads/sysdeps/sparc/tls.h b/linuxthreads/sysdeps/sparc/tls.h
index 3e550fa7c7..5053824058 100644
--- a/linuxthreads/sysdeps/sparc/tls.h
+++ b/linuxthreads/sysdeps/sparc/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/sparc version.
- Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,18 +23,13 @@
#ifndef __ASSEMBLER__
# include <pt-machine.h>
-# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;
typedef struct
diff --git a/linuxthreads/sysdeps/x86_64/tls.h b/linuxthreads/sysdeps/x86_64/tls.h
index 67d80b28d9..d979bbd896 100644
--- a/linuxthreads/sysdeps/x86_64/tls.h
+++ b/linuxthreads/sysdeps/x86_64/tls.h
@@ -1,5 +1,5 @@
/* Definitions for thread-local data handling. linuxthreads/x86-64 version.
- Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,18 +23,13 @@
#ifndef __ASSEMBLER__
# include <pt-machine.h>
-# include <stdbool.h>
# include <stddef.h>
/* Type for the dtv. */
typedef union dtv
{
size_t counter;
- struct
- {
- void *val;
- bool is_static;
- } pointer;
+ void *pointer;
} dtv_t;