On Tue, Aug 25, 2020 at 6:43 PM Rich Felker wrote: > The attached patch series refactors fragments from pthread_arch.h to > reduce redundancy and allow pthread_arch.h to be included at the top > of pthread_impl.h, where it can be used to influence the > definition/layout of struct __pthread, rather than the middle of the > file. This makes it possible to get rid of the duplicate canary and > dtv members that existed just to match multiple ABIs silumtaneously. > > This involved a good deal of manual conversion/deduplication so it's > possible there are bugs for some archs. That's why I've posted the > series for review rather than just pushing. Reports of success/failure > (disassembly of pthread_self.o before/after probably suffice to > confirm no regression) would be very helpful. > I mechanically confirmed for all archs that with the first two patches applied, disassembly of pthread_self.o before/after doesn't change. The third patch obviously changes the offset for most archs due to change in sizeof struct pthread. Only other remark: ricv64's __get_tp misses the change of the variable type from char * to uintptr_t.