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] |
On Mon, Jan 27, 2003 at 08:44:06PM +0100, Martin Schwidefsky wrote: > --- libc/linuxthreads/sysdeps/s390/tls.h Sun Jan 5 06:10:50 2003 > +++ libc-s390/linuxthreads/sysdeps/s390/tls.h Sat Jan 25 18:15:17 2003 > @@ -45,19 +45,99 @@ > # include <tcb-offsets.h> > #endif /* __ASSEMBLER__ */ > > -#undef USE_TLS > +/* We can support TLS only if the floating-stack support is available. > + However, we want to compile in the support and test at runtime whether > + the running kernel can support it or not. To avoid bothering with the > + TLS support code at all, use configure --without-tls. > > -#if USE_TLS > + We need USE_TLS to be consistently defined, for ldsodefs.h conditionals. > + But some of the code below can cause problems in building libpthread > + (e.g. useldt.h will defined FLOATING_STACKS when it shouldn't). */ > > -#else > +#if defined HAVE_TLS_SUPPORT \ > + && (defined FLOATING_STACKS || !defined IS_IN_libpthread) The comment and the define should be updated. s390 uses FLOATING_STACKS always, so doesn't have to be tested and doesn't need to be spoken about in the comment. Furthermore, there is no useldt.h header. > --- libc/sysdeps/s390/s390-32/dl-machine.h Fri Mar 1 10:43:37 2002 > +++ libc-s390/sysdeps/s390/s390-32/dl-machine.h Sat Jan 25 18:15:17 2003 > + case R_390_TLS_TPOFF: > + /* The offset is negative, forward from the thread pointer. */ > +# ifdef RTLD_BOOTSTRAP > + *reloc_addr = sym->st_value + reloc->r_addend - map->l_tls_offset; > +# else > + /* We know the offset of the object the symbol is contained in. > + It is a negative value which will be added to the > + thread pointer. */ > + if (sym != NULL) > + { > + *reloc_addr = (sym->st_value + reloc->r_addend > + - sym_map->l_tls_offset); > + CHECK_STATIC_TLS (map, sym_map); CHECK_STATIC_TLS needs to come before *reloc_addr assignment. > --- libc/sysdeps/s390/s390-64/dl-machine.h Fri Mar 1 10:43:37 2002 > +++ libc-s390/sysdeps/s390/s390-64/dl-machine.h Sat Jan 25 18:15:17 2003 > + case R_390_TLS_TPOFF: > + /* The offset is negative, forward from the thread pointer. */ > +# ifdef RTLD_BOOTSTRAP > + *reloc_addr = sym->st_value + reloc->r_addend - map->l_tls_offset; > +# else > + /* We know the offset of the object the symbol is contained in. > + It is a negative value which will be added to the > + thread pointer. */ > + if (sym != NULL) > + { > + *reloc_addr = (sym->st_value + reloc->r_addend > + - sym_map->l_tls_offset); > + CHECK_STATIC_TLS (map, sym_map); Likewise. Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |