v1 can be found at https://sourceware.org/pipermail/elfutils-devel/2023q3/006329.html
Heather McIntyre is the original author of v1 of these patches. Heather and myself co-wrote v2. Aaron Merey (9): libelf: Fix deadlock in __libelf_readall libelf: Fix deadlock in elf_cntl lib: Add eu_tsearch, eu_tfind, eu_tdelete and eu_tdestroy libdw: make dwarf_getalt thread-safe libdwP.h: Add locking to __libdw_dieabbrev libdw: Make libdw_find_split_unit thread-safe libdw: Make libdw_findcu thread-safe tests: Add eu-search tests configure: No longer mark --enable-thread-safety as EXPERIMENTAL configure.ac | 6 +- lib/Makefile.am | 5 +- lib/eu-config.h | 30 +--- lib/eu-search.c | 85 +++++++++++ lib/eu-search.h | 64 +++++++++ lib/locks.h | 62 ++++++++ libdw/cfi.h | 6 +- libdw/cie.c | 10 +- libdw/dwarf_begin_elf.c | 7 +- libdw/dwarf_end.c | 17 +-- libdw/dwarf_formref_die.c | 2 + libdw/dwarf_getalt.c | 18 ++- libdw/dwarf_getcfi.c | 5 +- libdw/dwarf_getlocation.c | 24 ++-- libdw/dwarf_getmacros.c | 6 +- libdw/dwarf_getsrclines.c | 8 +- libdw/dwarf_setalt.c | 4 + libdw/fde.c | 6 +- libdw/frame-cache.c | 8 +- libdw/libdwP.h | 49 +++++-- libdw/libdw_find_split_unit.c | 18 ++- libdw/libdw_findcu.c | 65 +++++---- libdwfl/cu.c | 8 +- libdwfl/dwfl_module.c | 4 +- libdwfl/libdwflP.h | 3 +- libelf/common.h | 16 +-- libelf/elf_begin.c | 2 + libelf/elf_cntl.c | 7 +- libelf/elf_end.c | 13 +- libelf/elf_getdata_rawchunk.c | 12 +- libelf/elf_readall.c | 4 +- libelf/libelfP.h | 10 +- tests/.gitignore | 4 + tests/Makefile.am | 19 ++- tests/eu_search_cfi.c | 234 ++++++++++++++++++++++++++++++ tests/eu_search_die.c | 262 ++++++++++++++++++++++++++++++++++ tests/eu_search_lines.c | 228 +++++++++++++++++++++++++++++ tests/eu_search_macros.c | 216 ++++++++++++++++++++++++++++ tests/run-eu-search-tests.sh | 168 ++++++++++++++++++++++ 39 files changed, 1553 insertions(+), 162 deletions(-) create mode 100644 lib/eu-search.c create mode 100644 lib/eu-search.h create mode 100644 lib/locks.h create mode 100644 tests/eu_search_cfi.c create mode 100644 tests/eu_search_die.c create mode 100644 tests/eu_search_lines.c create mode 100644 tests/eu_search_macros.c create mode 100755 tests/run-eu-search-tests.sh -- 2.45.2