Valgrind in stable

Hi,
Before anyone sees red: this is a suggestion in good faith, and I’ve read all the recent conversations concerning the incompatibility between stable branch glibc (ld symbols) and Valgrind.
To prevent Valgrind being a recurring issue, wouldn’t it be a better solution to remove the Valgrind package from the stable branches and leave a hint for people that require Valgrind that they should be on testing/unstable for that functionality.

Thanks

Can you explain the issue you may have? We have our own glibc due to Steam Games and EAC compatibility.

In Manjaro DEBUGINFOD_URLS is pointed at https://debuginfod.archlinux.org/ and those debug symbols don’t match the installed libraries.

Even when Manjaro was using the Arch glibc package without changes debug symbols were still broken whenever Arch version of glibc didn’t match the installed one, which is often the case for Manjaro stable branch.

We don’t use debuginfod at all on our end. Cos we might need matching snapshots of it based in our branches.

Off the top of my head but I wonder if a simple solution would be to provide glibc debug info files locally? Debug tools will check for that before going to debuginfod. Could put them in a separate glibc-debuginfo package if the size of those files is a concern?

Btw. valgrind is currently also broken in unstable and testing. Valgrind is an essential developer’s tool for me. Having its support frequently broken makes Manjaro a real pain in the ass.

Here is what I currently get on unstable:

[fme@platypus hello_cc_ux]$ valgrind ./hello_cc_ux 
==11434== Memcheck, a memory error detector
==11434== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==11434== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==11434== Command: ./hello_cc_ux
==11434== 

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.

Any long-term solution to solve this problem for good would be appreciated.

2 Likes

Manjaro now builds a different glibc than Arch because Arch dropped the EAC patch. So it doesn’t matter what branch you’re on.

Currently the only safe way I can see to get debug symbols for glibc on Manjaro is to rebuild the Manjaro glibc package yourself with debug symbols. Have a look at this thread.