When running a program under valgrind in combination with the glibc from the experimental binhost, the following fatal diagnostic appears: valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: strlen valgrind: in an object with soname matching: ld-linux-x86-64.so.2 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux-x86-64.so.2 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. It is "easy" to build your own glibc with debug info included, but defeats the purpose of the binhost. And bug 46186 / bug 587296 disabled stripping for pthread for the sake of gdb. So for the same reason, it should be disabled in ld.so for the sake of valgrind.
Created attachment 880365 [details, diff] sys-libs/glibc: disable stripping for ld.so as well This patch to implement the change, causes valgrind to work for me.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4569f05afae6d9fea70cb9982c694f1fdca38622 commit 4569f05afae6d9fea70cb9982c694f1fdca38622 Author: Eli Schwartz <eschwartz93@gmail.com> AuthorDate: 2023-12-27 04:14:50 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2024-01-03 21:54:20 +0000 sys-libs/glibc: disable stripping for ld.so as well Similar to how pthread must not be stripped in order to avoid breaking gdb, ld.so must not be stripped in order to avoid breaking valgrind. Closes: https://bugs.gentoo.org/920753 Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> Signed-off-by: Sam James <sam@gentoo.org> sys-libs/glibc/glibc-2.37-r9.ebuild | 1684 ++++++++++++++++++++++++++++++++++ sys-libs/glibc/glibc-2.38-r9.ebuild | 1718 +++++++++++++++++++++++++++++++++++ 2 files changed, 3402 insertions(+)