diff options
author | Florian Weimer <fweimer@redhat.com> | 2020-11-16 19:33:30 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2020-11-16 19:33:30 +0100 |
commit | 1daccf403b1bd86370eb94edca794dc106d02039 (patch) | |
tree | e54bc8ee71eb92b7114df79e2f378a477c470029 /nptl_db/thread_dbP.h | |
parent | aac0f62c47beee5b546bacc330acc2dd21cda0dc (diff) | |
download | glibc-1daccf403b1bd86370eb94edca794dc106d02039.tar.gz glibc-1daccf403b1bd86370eb94edca794dc106d02039.tar.xz glibc-1daccf403b1bd86370eb94edca794dc106d02039.zip |
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>
Diffstat (limited to 'nptl_db/thread_dbP.h')
-rw-r--r-- | nptl_db/thread_dbP.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h index 8a666b8d4f..9574e68d70 100644 --- a/nptl_db/thread_dbP.h +++ b/nptl_db/thread_dbP.h @@ -269,4 +269,17 @@ extern td_err_e _td_check_sizeof (td_thragent_t *ta, uint32_t *sizep, extern td_err_e __td_ta_lookup_th_unique (const td_thragent_t *ta, lwpid_t lwpid, td_thrhandle_t *th); +/* Try to initialize TA->ta_addr__rtld_global. Return true on + success, false on failure (which may be cached). */ +bool __td_ta_rtld_global (td_thragent_t *ta) attribute_hidden; + +/* Obtain the address of the list_t fields _dl_stack_user and + _dl_stack_used in _rtld_global, or fall back to the global + variables of the same name (to support statically linked + programs). */ +td_err_e __td_ta_stack_user (td_thragent_t *ta, psaddr_t *plist) + attribute_hidden; +td_err_e __td_ta_stack_used (td_thragent_t *ta, psaddr_t *plist) + attribute_hidden; + #endif /* thread_dbP.h */ |