This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [BZ#17090/17620/17621]: fix DTV race, assert, and DTV_SURPLUS Static TLS limit
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: codonell at redhat dot com, libc-alpha at sourceware dot org
- Date: Mon, 05 Jan 2015 22:05:54 -0200
- Subject: Re: [BZ#17090/17620/17621]: fix DTV race, assert, and DTV_SURPLUS Static TLS limit
- Authentication-results: sourceware.org; auth=none
- References: <ormw7ol1sf dot fsf at free dot home> <20141118203338 dot ECA5F2C3B25 at topped-with-meat dot com> <ord28kkvpq dot fsf at free dot home> <20141118224048 dot 600312C3B23 at topped-with-meat dot com> <orppcjotfm dot fsf at free dot home> <20141120021703 dot 86F032C3B18 at topped-with-meat dot com> <or8uj6qse8 dot fsf at free dot home> <oroas0mzri dot fsf at free dot home> <orlhmgyall dot fsf at free dot home>
On Dec 9, 2014, Alexandre Oliva <aoliva@redhat.com> wrote:
> On Nov 21, 2014, Alexandre Oliva <aoliva@redhat.com> wrote:
>> No regressions on x86_64-linux-gnu. Ok to install?
>> for ChangeLog
>> [BZ #17090]
>> [BZ #17620]
>> [BZ #17621]
>> [BZ #17628]
>> * NEWS: Update.
>> * elf/dl-tls.c (_dl_update_slotinfo): Clean up outdated DTV
>> entries with Static TLS too.
>> (tls_get_addr_tail): Update to glibc_likely/unlikely. Move
>> Static TLS DTV entry set up from...
>> (_dl_allocate_tls_init): ... here (fix modid assertion), ...
>> * elf/dl-reloc.c (_dl_nothread_init_static_tls): ... here...
>> * nptl/allocatestack.c (init_one_static_tls): ... and here...
>> * elf/dlopen.c (dl_open_worker): Drop l_tls_modid upper bound
>> for Static TLS.
>> * nptl_db/db_info.c: Include ldsodefs.h.
>> (rtld_global, dtv_slotinfo_list, dtv_slotinfo): New typedefs.
>> * nptl_db/structs.def (DB_RTLD_VARIABLE): New macro.
>> (DB_MAIN_VARIABLE, DB_RTLD_GLOBAL_FIELD): Likewise.
>> (link_map::l_tls_offset): New struct field.
>> (dtv_t::counter): Likewise.
>> (rtld_global): New struct.
>> (_rtld_global): New rtld variable.
>> (dl_tls_dtv_slotinfo_list): New rtld global field.
>> (dtv_slotinfo_list): New struct.
>> (dtv_slotinfo): Likewise.
>> * nptl_db/td_symbol_list.c: Drop gnu/lib-names.h include.
>> (td_lookup): Rename to...
>> (td_mod_lookup): ... this. Use new mod parameter instead of
>> LIBPTHREAD_SO.
>> * nptl_db/td_thr_tlsbase.c: Include link.h.
>> (dtv_slotinfo_list, dtv_slotinfo): New functions.
>> (td_thr_tlsbase): Check DTV generation. Compute Static TLS
>> addresses even if the DTV is out of date or missing them.
>> * nptl_db/fetch-value.c (_td_locate_field): Do not refuse to
>> index zero-length arrays.
>> * nptl_db/thread_dbP.h: Include gnu/lib-names.h.
>> (td_lookup): Make it a macro implemented in terms of...
>> (td_mod_lookup): ... this declaration.
>> * nptl_db/db-symbols.awk (DB_RTLD_VARIABLE): Override.
>> (DB_MAIN_VARIABLE): Likewise.
> Ping?
> https://sourceware.org/ml/libc-alpha/2014-11/msg00590.html
Ping?
--
Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer