This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: dtv_t in linuxthreads and nptl


Here're some more patches that I needed - now make && make check
passes.

Ok to commit?

Andreas

linuxthreads_db:
2005-01-09  Andreas Jaeger  <aj@suse.de>

	* td_thr_tlsbase.c (td_thr_tlsbase): Adjust for dtv change.

linuxthreads:
2005-01-09  Andreas Jaeger  <aj@suse.de>

	* 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

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]