The solution is to rebuild my testing program: $ gcc main.c $ valgrind ./a.out ==19235== Memcheck, a memory error detector ==19235== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==19235== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info ==19235== Command: ./a.out ==19235== hello world ==19235== ==19235== HEAP SUMMARY: ==19235== in use at exit: 0 bytes in 0 blocks ==19235== total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated ==19235== ==19235== All heap blocks were freed -- no leaks are possible ==19235== ==19235== For counts of detected and suppressed errors, rerun with: -v ==19235== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Problem solved. On Thu, 24 Aug 2017 07:52:08 +0000 YuGiOhJCJ Mailing-List via Valgrind-users <valgrind-users@lists.sourceforge.net> wrote: > Hello, > > I have recently built my own package of glibc instead of using the one > provided by my operating system. > > The result is that valgrind is now complaining: > --- > $ valgrind ./a.out > ==1445== Memcheck, a memory error detector > ==1445== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. > ==1445== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info > ==1445== Command: ./a.out > ==1445== > > 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.so.2 > valgrind: was not found whilst processing > valgrind: symbols from the object with soname: ld-linux.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: Cannot continue -- exiting now. Sorry. > --- > > It seems that valgrind requires to not strip the dynamic linker. > It's true that in my glibc package, I have stripped it: > --- > $ file /lib64/ld-2.26.so > /lib64/ld-2.26.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), > dynamically linked, stripped > --- > > So, I have rebuilt my own package of glibc without stripping the dynamic > linker. > Here, you can see, it is no longer stripped: > --- > $ file /lib64/ld-2.26.so > /lib64/ld-2.26.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), > dynamically linked, not stripped > --- > > However, valgrind is still complaining: > --- > $ valgrind ./a.out > ==1445== Memcheck, a memory error detector > ==1445== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. > ==1445== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info > ==1445== Command: ./a.out > ==1445== > > 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.so.2 > valgrind: was not found whilst processing > valgrind: symbols from the object with soname: ld-linux.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: Cannot continue -- exiting now. Sorry. > --- > > Why valgrind is still complaining please? > > Thank you. > Best regards. > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Valgrind-users mailing list > Valgrind-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/valgrind-users ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users