[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_glibc]] IRC, unknown channel, unknown date. you can hardcode DTV_OFFSET as 4 for now it's the offset of the dtv field in the tcbhead_t structure from hurd/libpthread youpi: May very well be that I'm misunderstanding something, but wouldn't it rather be the offset of tcb in __pthread + the offset of dtv in tcbhead_t (which indeed is 4)? what you don't know is that DTV_OFFSET is not relative to __pthread, but to the tls segment Oh, aha. Thanks. and drepper abused the fact that in nptl __pthread appears at the start of the tls segment kFreeBSD, glibc: ++#if 0 + DTV_OFFSET offsetof(struct pthread, header.dtv) ++#else ++DTV_OFFSET offsetof(struct _pthread_descr_struct, p_header.data.dtvp) ++#endif