FS#30851 - [valgrind] all programs report errors because system libraries have moved
Attached to Project:
Arch Linux
Opened by Matthew Skala (mskala) - Wednesday, 25 July 2012, 18:27 GMT
Last edited by Allan McRae (Allan) - Saturday, 28 July 2012, 10:02 GMT
Opened by Matthew Skala (mskala) - Wednesday, 25 July 2012, 18:27 GMT
Last edited by Allan McRae (Allan) - Saturday, 28 July 2012, 10:02 GMT
|
Details
With valgrind 3.7.0-3, current version in extra as of July
25 2012: every run of the default "memcheck" tool reports
uninitialized data errors unrelated to the program under
test.
The errors are reported in the system libraries, apparently somewhere related to the dynamic library loader which virtually all executables invoke. Valgrind would normally suppress such errors, but its default suppression file tells it to ignore errors in system libraries in /lib, and Arch's recent misguided and ridiculous elimination of /lib means the libraries are now in /usr/lib and they are no longer covered by the default suppression file. Fixing this will require a new default suppression file; most likely re-running the Valgrind build on a post-rearrangement system should automatically generate one that work. The actual error message from Valgrind is not very useful, but for reference here is the output of "valgrind /bin/true". Similar errors are given on *all* runs of the memcheck tool. Prior to the library breakage, it reported no errors for /bin/true. ==22955== Memcheck, a memory error detector ==22955== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==22955== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==22955== Command: /bin/true ==22955== ==22955== Conditional jump or move depends on uninitialised value(s) ==22955== at 0x4017876: index (in /usr/lib/ld-2.16.so) ==22955== by 0x4007902: expand_dynamic_string_token (in /usr/lib/ld-2.16.so) ==22955== by 0x4008204: _dl_map_object (in /usr/lib/ld-2.16.so) ==22955== by 0x400180D: map_doit (in /usr/lib/ld-2.16.so) ==22955== by 0x400E785: _dl_catch_error (in /usr/lib/ld-2.16.so) ==22955== by 0x40010DB: do_preload (in /usr/lib/ld-2.16.so) ==22955== by 0x4004546: dl_main (in /usr/lib/ld-2.16.so) ==22955== by 0x4014B5D: _dl_sysdep_start (in /usr/lib/ld-2.16.so) ==22955== by 0x4004DFD: _dl_start (in /usr/lib/ld-2.16.so) ==22955== by 0x4001627: ??? (in /usr/lib/ld-2.16.so) ==22955== ==22955== Conditional jump or move depends on uninitialised value(s) ==22955== at 0x401787B: index (in /usr/lib/ld-2.16.so) ==22955== by 0x4007902: expand_dynamic_string_token (in /usr/lib/ld-2.16.so) ==22955== by 0x4008204: _dl_map_object (in /usr/lib/ld-2.16.so) ==22955== by 0x400180D: map_doit (in /usr/lib/ld-2.16.so) ==22955== by 0x400E785: _dl_catch_error (in /usr/lib/ld-2.16.so) ==22955== by 0x40010DB: do_preload (in /usr/lib/ld-2.16.so) ==22955== by 0x4004546: dl_main (in /usr/lib/ld-2.16.so) ==22955== by 0x4014B5D: _dl_sysdep_start (in /usr/lib/ld-2.16.so) ==22955== by 0x4004DFD: _dl_start (in /usr/lib/ld-2.16.so) ==22955== by 0x4001627: ??? (in /usr/lib/ld-2.16.so) ==22955== ==22955== ==22955== HEAP SUMMARY: ==22955== in use at exit: 0 bytes in 0 blocks ==22955== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==22955== ==22955== All heap blocks were freed -- no leaks are possible ==22955== ==22955== For counts of detected and suppressed errors, rerun with: -v ==22955== Use --track-origins=yes to see where uninitialised values come from ==22955== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) |
This task depends upon