> > Anyway, look at configure flags for basic libc in debian/sysdeps/i386.mk:
> > 
> > libc_extra_config_options = $(extra_config_options) --with-tls 
> > --without-__thread
> > 
> > It doesn't use TLS internally, there is no .tbss ot .tdata segment in 
> > libc.so.
> 
> There is:
> 
> $ objdump -T libc-2.3.5.so | grep -e "\(tbss\|tdata\)"
> 001315e0 l    d  .tdata 00000000              .tdata
> 001315e8 l    d  .tbss  00000000              .tbss
> 00000008 g    D  .tbss  00000004  GLIBC_PRIVATE errno
> 0000001c g    D  .tbss  00000004  GLIBC_PRIVATE h_errno
> 00000004 g    D  .tdata 00000004  GLIBC_PRIVATE __resp
> 
> Please also look at how syscall() sets errno:
> 0x000cd863 <syscall+67>:        mov    %edx,%gs:(%ecx)


It is in optimized one:

Package: libc6-i686
Architecture: i386
Source: glibc
Version: 2.3.5-11

$ objdump -T /lib/tls/i686/cmov/libc-2.3.5.so  | grep -e "\(tbss\|tdata\)" | wc
      5      33     267


But not in the basic one:

$ dpkg -s libc6
Package: libc6
Architecture: i386
Source: glibc
Version: 2.3.5-11

$  objdump -T /lib/libc-2.3.5.so  | grep -e "\(tbss\|tdata\)" | wc
      0       0       0

Petr




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to