Hello,
This is (revived and rebased) version of the libdw memory manager that
isn't affected by the PTHREAD_KEYS_MAX limit. There are some downsides,
in particular if an application spawns many short-lived threads that
all touch a Dwarf (enough to cause an allocation), there's about ~8N
bytes of memory overhead.
The first patch is not required and adds some configure-time options
for Valgrind annotation support (although, I'm not a serious autotools
user, so it might need some work).
-Jonathon
----------------------------------------------------------------
Jonathon Anderson (2):
Add configure options for Valgrind annotations.
libdw: Rewrite the memory handler to be more robust.
ChangeLog | 5 +++++
configure.ac | 30 ++++++++++++++++++++++++++++++
lib/atomics.h | 2 ++
libdw/ChangeLog | 9 +++++++++
libdw/dwarf_begin_elf.c | 7 ++++---
libdw/dwarf_end.c | 24 +++++++++++++-----------
libdw/libdwP.h | 67
++++++++++++++++++++++++++++++++-----------------------------------
libdw/libdw_alloc.c | 69
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
8 files changed, 160 insertions(+), 53 deletions(-)