diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 35 | ||||
-rw-r--r-- | linuxthreads/Makefile | 4 | ||||
-rw-r--r-- | linuxthreads/descr.h | 4 | ||||
-rw-r--r-- | linuxthreads/pthread.c | 3 | ||||
-rw-r--r-- | linuxthreads/specific.c | 14 | ||||
-rw-r--r-- | linuxthreads/sysdeps/alpha/tls.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/i386/Makefile | 1 | ||||
-rw-r--r-- | linuxthreads/sysdeps/i386/tls.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/ia64/tls.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/powerpc/tls.h | 15 | ||||
-rw-r--r-- | linuxthreads/sysdeps/s390/tls.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/sh/tls.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/sparc/tls.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/x86_64/tls.h | 9 |
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; |