Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jun 2003 17:17:12 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        threads@freebsd.org
Subject:   Re: TLS: defining the problem space
Message-ID:  <Pine.GSO.4.10.10306201711430.23504-100000@pcnet5.pcnet.com>
In-Reply-To: <20030620205945.GA19212@dhcp01.pn.xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 20 Jun 2003, Marcel Moolenaar wrote:
> If both libc and pthread provide weak definitions, then how do we
> guarantee correct binding in the complete, with pthread and dynamic
> TLS case. If libc and RTLD provide weak definitions, then how do we
> guarantee proper binding in the shared, without pthread and dynamic
> TLS case?

I don't know if it helps, but here's some info from a Solaris 9
box (UltraSparc):

  gpz $ nm /usr/lib/libc.so.1 | grep tls_
  gpz $ nm /usr/lib/ld.so.1 | grep tls_
  [829]   |         0|       0|FUNC |GLOB |0    |UNDEF  |Dbg_tls_modactivity
  [875]   |         0|       0|FUNC |GLOB |0    |UNDEF  |Dbg_tls_static_block
  [568]   |    221816|       4|OBJT |LOCL |0    |15     |fptr_tls_modadd
  [569]   |    221820|       4|OBJT |LOCL |0    |15     |fptr_tls_modrem
  [570]   |    221824|       4|OBJT |LOCL |0    |15     |fptr_tls_statmods
  [220]   |     85632|      84|FUNC |LOCL |0    |10     |tls_assign_soffset
  [140]   |     85176|      96|FUNC |LOCL |0    |10     |tls_freemodid
  [116]   |     84808|     368|FUNC |LOCL |0    |10     |tls_getmodid
  [361]   |     85348|     284|FUNC |LOCL |0    |10     |tls_modactivity
  [64]    |     85716|     688|FUNC |LOCL |0    |10     |tls_report_modules
  [398]   |     85272|      76|FUNC |LOCL |0    |10     |tls_setroutines
  [572]   |    221832|       4|OBJT |LOCL |0    |15     |tls_static_size
  gpz $ nm /usr/lib/libthread.so.1 | grep tls_
  [986]   |     90128|      60|FUNC |GLOB |0    |10     |__tls_get_addr
  [287]   |     85584|     228|FUNC |LOCL |0    |10     |__tls_mod_add
  [71]    |     85812|      72|FUNC |LOCL |0    |10     |__tls_mod_remove
  [178]   |     85260|     324|FUNC |LOCL |0    |10     |__tls_static_mods
  [448]   |     85884|     392|FUNC |LOCL |0    |10     |slow_tls_get_addr
  [403]   |     86488|     296|FUNC |LOCL |0    |10     |tls_exit
  [52]    |     86784|     148|FUNC |LOCL |0    |10     |tls_free
  [611]   |    167144|      24|OBJT |LOCL |0    |17     |tls_lock
  [410]   |    172176|       8|OBJT |LOCL |0    |20     |tls_modinfo
  [252]   |    168712|      40|OBJT |LOCL |0    |19     |tls_rtldinfo
  [407]   |     86276|     212|FUNC |LOCL |0    |10     |tls_setup
  gpz $ nm /usr/lib/libpthread.so.1 | grep tls_

libthread seems to be the only one defining __tls_get_addr().

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10306201711430.23504-100000>