Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 920753 - sys-libs/glibc: refrain from stripping ld.so for dev-util/valgrind compat
Summary: sys-libs/glibc: refrain from stripping ld.so for dev-util/valgrind compat
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks: 390323
  Show dependency tree
 
Reported: 2023-12-27 04:13 UTC by Eli Schwartz
Modified: 2024-01-07 13:37 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
sys-libs/glibc: disable stripping for ld.so as well (0001-sys-libs-glibc-disable-stripping-for-ld.so-as-well.patch,109.56 KB, patch)
2023-12-27 04:20 UTC, Eli Schwartz
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Eli Schwartz 2023-12-27 04:13:31 UTC
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.
Comment 1 Eli Schwartz 2023-12-27 04:20:49 UTC
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.
Comment 2 Larry the Git Cow gentoo-dev 2024-01-03 21:54:57 UTC
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(+)