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 <mark@klomp.org>
This commit is contained in:
Mark Wielaard
2020-10-31 13:43:42 +01:00
parent 92692b8170
commit 63719a2c15
2 changed files with 16 additions and 0 deletions
+4
View File
@@ -1,3 +1,7 @@
2020-10-31 Mark Wielaard <mark@klomp.org>
* dwfl-proc-attach.c (dlopen): New external function override.
2020-10-31 Mark Wielaard <mark@klomp.org>
* test-wrapper.sh: Use =, not == for string compare.
+12
View File
@@ -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__ */