This commit: commit 1daccf403b1bd86370eb94edca794dc106d02039 Author: Florian Weimer <fweimer@redhat.com> Date: Mon Nov 16 19:33:30 2020 +0100 nptl: Move stack list variables into _rtld_global Now __thread_gscope_wait (the function behind THREAD_GSCOPE_WAIT, formerly __wait_lookup_done) can be implemented directly in ld.so, eliminating the unprotected GL (dl_wait_lookup_done) function pointer. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> exposed a GDB limitation: libthread_db is loaded once GDB encounters libpthread, and at this point, ld.so may not have been loaded yet. As a result, _rtld_global cannot be accessed by regular means from libthread_db.
Patch posted: https://sourceware.org/pipermail/libc-alpha/2021-April/125137.html
The master branch has been updated by Florian Weimer <fw@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a64afc225240b2b27129ccfb0516d7c958b98040 commit a64afc225240b2b27129ccfb0516d7c958b98040 Author: Florian Weimer <fweimer@redhat.com> Date: Wed Apr 21 11:50:43 2021 +0200 nptl_db: Support different libpthread/ld.so load orders (bug 27744) libthread_db is loaded once GDB encounters libpthread, and at this point, ld.so may not have been processed by GDB yet. As a result, _rtld_global cannot be accessed by regular means from libthread_db. To make this work until GDB can be fixed, acess _rtld_global through a pointer stored in libpthread. The new test does not reproduce bug 27744 with --disable-hardcoded-path-in-tests, but is still a valid smoke test. With --enable-hardcoded-path-in-tests, it is necessary to avoid add-symbol-file because this can tickle a GDB bug. Fixes commit 1daccf403b1bd86370eb94edca794dc106d02039 ("nptl: Move stack list variables into _rtld_global"). Tested-by: Emil Velikov <emil.velikov@collabora.com>
Fixed for glibc 2.34.
The release/2.33/master branch has been updated by Florian Weimer <fw@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ea299b62e83cc38b0d910bbd1a879f7d1f836e96 commit ea299b62e83cc38b0d910bbd1a879f7d1f836e96 Author: Florian Weimer <fweimer@redhat.com> Date: Wed Apr 21 11:50:43 2021 +0200 nptl_db: Support different libpthread/ld.so load orders (bug 27744) libthread_db is loaded once GDB encounters libpthread, and at this point, ld.so may not have been processed by GDB yet. As a result, _rtld_global cannot be accessed by regular means from libthread_db. To make this work until GDB can be fixed, acess _rtld_global through a pointer stored in libpthread. The new test does not reproduce bug 27744 with --disable-hardcoded-path-in-tests, but is still a valid smoke test. With --enable-hardcoded-path-in-tests, it is necessary to avoid add-symbol-file because this can tickle a GDB bug. Fixes commit 1daccf403b1bd86370eb94edca794dc106d02039 ("nptl: Move stack list variables into _rtld_global"). Tested-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit a64afc225240b2b27129ccfb0516d7c958b98040)