From: Mark Wielaard Date: Sat, 31 Oct 2020 12:43:42 +0000 (+0100) Subject: tests: Add dlopen override to dwfl-proc-attach for old glibc/valgrind. X-Git-Tag: elfutils-0.182~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=63719a2c1548f23018d8afa4821067c440045eac;p=thirdparty%2Felfutils.git tests: Add dlopen override to dwfl-proc-attach for old glibc/valgrind. Some combination of old glibc and valgrind create unsuppressable memory leak warnings when the process is run under valgrind, is multi-threaded and uses dlopen. libdw will try to dlopen libdebuginfod be default. So simply override dlopen and always return NULL to make sure libdebuginfod is never loaded. The dwfl-proc-attach test doesn't rely on libdebuginfod anyway. This was seen on the armbian buildbot which uses valgrind 3.14.0 and glibc 2.28. Signed-off-by: Mark Wielaard --- diff --git a/tests/ChangeLog b/tests/ChangeLog index 17c6ba2dc..af8ece635 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-10-31 Mark Wielaard + + * dwfl-proc-attach.c (dlopen): New external function override. + 2020-10-31 Mark Wielaard * test-wrapper.sh: Use =, not == for string compare. diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c index b72cc8142..d02e9fc0e 100644 --- a/tests/dwfl-proc-attach.c +++ b/tests/dwfl-proc-attach.c @@ -107,4 +107,16 @@ main (int argc __attribute__ ((unused)), return (threads == 3) ? 0 : -1; } +/* HACK. This is a simple workaround for a combination of old glibc + and valgrind. libdw will try to dlopen libdebuginfod this causes + some unsuppressable memory leak warnings when the process is + multi-threaded under valgrind because of some bad backtraces. + So simply override dlopen and always return NULL so libdebuginfod + (and libcurl) are never loaded. This test doesn't rely on + libdebuginfod anyway. */ +void *dlopen (void) +{ + return NULL; +} + #endif /* __linux__ */