Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
FS#11232 - The valgrind package is broken due to mismatching glibc version and /usr/lib/valgrind/default.supp
Attached to Project:
Arch Linux
Opened by Arvid Norlander (AnMaster) - Saturday, 16 August 2008, 20:24 GMT
Last edited by Jan de Groot (JGC) - Wednesday, 20 August 2008, 20:25 GMT
Opened by Arvid Norlander (AnMaster) - Saturday, 16 August 2008, 20:24 GMT
Last edited by Jan de Groot (JGC) - Wednesday, 20 August 2008, 20:25 GMT
|
DetailsDescription:
The /usr/lib/valgrind/default.supp is generated at valgrind build time, it includes: # xfree-3.supp xfree-4.supp glibc-2.34567-NPTL-helgrind.supp glibc-2.7.supp (quote from said file). However the glibc version on arch is 2.8, which results in false positives in ld.so (see below). The only way to fix this is making sure to rebuild valgrind package after every glibc package upgrade I guess. Locally rebuilding the package from abs and installing that fixes the issue. Additional info: * valgrind package version is 3.3.1-1 * System is i686. The issue may also be present on x86_64 but I am unable to confirm this. Steps to reproduce: $ sudo pacman -S valgrind [...] $ valgrind /bin/echo ==16063== Memcheck, a memory error detector. ==16063== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==16063== Using LibVEX rev 1854, a library for dynamic binary translation. ==16063== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==16063== Using valgrind-3.3.1, a dynamic binary instrumentation framework. ==16063== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==16063== For more details, rerun with: -v ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353EC2B: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x43537788: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353EC33: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x43537788: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353EDE0: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x43537788: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353FB61: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x43537788: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353FC74: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x43537788: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353EC2B: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x435378B3: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353EC33: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x435378B3: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== Conditional jump or move depends on uninitialised value(s) ==16063== at 0x4353EDE0: _dl_relocate_object (in /lib/ld-2.8.so) ==16063== by 0x435378B3: dl_main (in /lib/ld-2.8.so) ==16063== by 0x43548460: _dl_sysdep_start (in /lib/ld-2.8.so) ==16063== by 0x43535187: _dl_start (in /lib/ld-2.8.so) ==16063== by 0x435347F6: (within /lib/ld-2.8.so) ==16063== ==16063== ERROR SUMMARY: 12 errors from 8 contexts (suppressed: 0 from 0) ==16063== malloc/free: in use at exit: 0 bytes in 0 blocks. ==16063== malloc/free: 30 allocs, 30 frees, 2,221 bytes allocated. ==16063== For counts of detected errors, rerun with: -v ==16063== All heap blocks were freed -- no leaks are possible. |
This task depends upon
Closed by Jan de Groot (JGC)
Wednesday, 20 August 2008, 20:25 GMT
Reason for closing: Fixed
Additional comments about closing: Valgrind has been rebuilt with glibc 2.8.
Wednesday, 20 August 2008, 20:25 GMT
Reason for closing: Fixed
Additional comments about closing: Valgrind has been rebuilt with glibc 2.8.
http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
http://valgrind.org/docs/manual/mc-manual.html#mc-manual.suppfiles
You can write a rule that would work with any version of ld so :
{
dlrelocate
Memcheck:Cond
fun:_dl_relocate_object
obj:*ld-2.?.so
}
This is one of the rule we use for pacman, see http://projects.archlinux.org/?p=pacman.git;a=blob;f=valgrind.supp;hb=HEAD
But that isn't the issue here, the issue is that the suppression file generated at compile time of valgrind for the system libraries doesn't match the the system libraries currently used on Arch Linux.
In other words, the default suppression file need to be re-generated (by re-generating the package). Also it needs to be re-generated at any future glibc upgrade.
I just wanted to clarify that it was possible to use custom suppression files (using command line option or config file)