Here're some more patches that I needed - now make && make check passes. Ok to commit? Andreas linuxthreads_db: 2005-01-09 Andreas Jaeger * td_thr_tlsbase.c (td_thr_tlsbase): Adjust for dtv change. linuxthreads: 2005-01-09 Andreas Jaeger * pthread.c (init_one_static_tls): Adjust initialization of DTV entry for static tls deallocation fix. ============================================================ Index: linuxthreads/pthread.c --- linuxthreads/pthread.c 6 Oct 2004 08:04:43 -0000 1.135 +++ linuxthreads/pthread.c 9 Jan 2005 11:30:47 -0000 @@ -482,7 +482,8 @@ init_one_static_tls (pthread_descr descr # endif /* Fill in the DTV slot so that a later LD/GD access will find it. */ - dtv[map->l_tls_modid].pointer = dest; + dtv[map->l_tls_modid].pointer.val = dest; + dtv[map->l_tls_modid].pointer.is_static = true; /* Initialize the memory. */ memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size), ============================================================ Index: linuxthreads_db/td_thr_tlsbase.c --- linuxthreads_db/td_thr_tlsbase.c 14 Mar 2004 03:40:06 -0000 1.3 +++ linuxthreads_db/td_thr_tlsbase.c 9 Jan 2005 11:38:02 -0000 @@ -1,5 +1,5 @@ /* Locate TLS data for a thread. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005 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 @@ -59,10 +59,10 @@ td_thr_tlsbase (const td_thrhandle_t *th /* It could be that the memory for this module is not allocated for the given thread. */ - if (pdtv.pointer == TLS_DTV_UNALLOCATED) + if (pdtv.pointer.val == TLS_DTV_UNALLOCATED) return TD_TLSDEFER; - *base = (char *) pdtv.pointer; + *base = (char *) pdtv.pointer.val; return TD_OK; #else -- Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj SUSE Linux Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126