Re: Valgrind GCC 4.2 patches

From: Nikos Ntarmos <ntarmos_at_ceid.upatras.gr>
Date: Sun, 16 Dec 2007 17:52:34 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, Jul 12, 2007 at 10:49:47PM +0200, Teufel wrote:
> Hi again,
> 
> we got a bit further...  I guess its a prob with symbol versioning.
> 
> Greetings,
> 
> Stephan
> 
> valgrind /bin/ls
> ==98005== Memcheck, a memory error detector for x86-linux.
> ==98005== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.
> ==98005== Using valgrind-2.1.0, a program supervision framework for x86-linux.
> ==98005== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward.
> ==98005== Estimated CPU clock rate is 2464 MHz
> ==98005== For more details, rerun with: -v
> ==98005==
> /libexec/ld-elf.so.1: /lib/libc.so.7: version FBSD_1.0 required by /bin/ls not defined
> ==98005==
> ==98005== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
> ==98005== malloc/free: in use at exit: 0 bytes in 0 blocks.
> ==98005== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
> ==98005== For a detailed leak analysis,  rerun with: --leak-check=yes
> ==98005== For counts of detected errors, rerun with: -v

As another data point, valgrind 352_7 with the latest patch applied
compiled just yesterday with gcc 3.4 from ports gives:

valgrind -v /bin/ls
==91936== Memcheck, a memory error detector for x86-linux.
==91936== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.
==91936== Using valgrind-2.1.0, a program supervision framework for x86-linux.
==91936== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward.
==91936== Valgrind library directory: /usr/local/lib/valgrind
==91936== Command line
==91936==    /bin/ls
==91936== Startup, with flags:
==91936==    -v
==91936== Reading syms from /bin/ls (0x8048000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /libexec/ld-elf.so.1 (0x3C000000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /libexec/ld-elf.so.1 (0xB0000000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /lib/libc.so.7 (0xB0034000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /usr/local/lib/valgrind/vgskin_memcheck.so (0xB013A000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /lib/libgcc_s.so.1 (0xB0262000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /usr/local/lib/valgrind/stage2 (0xB8000000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading suppressions file: /usr/local/lib/valgrind/default.supp
==91936== Estimated CPU clock rate is 801 MHz
==91936== REDIRECT soname:libc.so.6(__GI___errno_location) to soname:libpthread.so.0(__errno_location)
==91936== REDIRECT soname:libc.so.6(__errno_location) to soname:libpthread.so.0(__errno_location)
==91936== REDIRECT soname:libc.so.6(__GI___h_errno_location) to soname:libpthread.so.0(__h_errno_location)
==91936== REDIRECT soname:libc.so.6(__h_errno_location) to soname:libpthread.so.0(__h_errno_location)
==91936== REDIRECT soname:libc.so.6(__GI___res_state) to soname:libpthread.so.0(__res_state)
==91936== REDIRECT soname:libc.so.6(__res_state) to soname:libpthread.so.0(__res_state)
==91936== REDIRECT soname:libc.so.6(stpcpy) to *vgpreload_memcheck.so*(stpcpy)
==91936== REDIRECT soname:libc.so.6(strnlen) to *vgpreload_memcheck.so*(strnlen)
==91936== REDIRECT soname:ld-linux.so.2(stpcpy) to *vgpreload_memcheck.so*(stpcpy)
==91936== REDIRECT soname:ld-linux.so.2(strchr) to *vgpreload_memcheck.so*(strchr)
==91936== 
==91936== Reading syms from /usr/local/lib/valgrind/vg_inject.so (0x3C036000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /usr/local/lib/valgrind/vgpreload_memcheck.so (0x3C039000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== Reading syms from /lib/libutil.so.7 (0x3C049000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== discard syms at 0x3C049000-0x3C056000 in /lib/libutil.so.7 due to munmap()
==91936== Reading syms from /lib/libncurses.so.7 (0x3C057000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== discard syms at 0x3C057000-0x3C09A000 in /lib/libncurses.so.7 due to munmap()
==91936== Reading syms from /lib/libc.so.7 (0x3C09B000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== discard syms at 0x3C09B000-0x3C198000 in /lib/libc.so.7 due to munmap()
==91936== Reading syms from /lib/libgcc_s.so.1 (0x3C199000)
==91936==    object doesn't have a symbol table
==91936==    object doesn't have any debug info
==91936== discard syms at 0x3C199000-0x3C1A4000 in /lib/libgcc_s.so.1 due to munmap()
ld-elf.so.1: assert failed: /opt/src/libexec/rtld-elf/rtld.c:686
==91936== 
==91936== Process terminating with default action of signal 6 (SIGABRT): dumping core
==91936==    at 0x3C01BB6F: (within /libexec/ld-elf.so.1)
==91936==    by 0x3C0173A8: (within /libexec/ld-elf.so.1)
==91936==    by 0x3C004168: (within /libexec/ld-elf.so.1)
==91936==    by 0x3C004AE9: (within /libexec/ld-elf.so.1)
==91936== Core dumping not implemented. Please re-run valgrind after fixing the crash.
==91936== 
==91936== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==91936== malloc/free: in use at exit: 0 bytes in 0 blocks.
==91936== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==91936== 
- --91936--     TT/TC: 0 tc sectors discarded.
- --91936--            697 chainings, 0 unchainings.
- --91936-- translate: new     897 (13042 -> 181980; ratio 139:10)
- --91936--            discard 0 (0 -> 0; ratio 0:10).
- --91936--  dispatch: 0 jumps (bb entries), of which 3346 (334600%) were unchained.
- --91936--            20/979 major/minor sched events.  898 tt_fast misses.
- --91936-- reg-alloc: 158 t-req-spill, 33321+954 orig+spill uis, 4519 total-reg-r.
- --91936--    sanity: 21 cheap, 1 expensive checks.
- --91936--    ccalls: 2972 C calls, 56% saves+restores avoided (9942 bytes)
- --91936--            4017 args, avg 0.88 setup instrs each (918 bytes)
- --91936--            0% clear the stack (8916 bytes)
- --91936--            1164 retvals, 33% of reg-reg movs avoided (760 bytes)

That's with v1.124 of rtld.c, line 686 reading:
    case DT_SYMENT:
		assert(dynp->d_un.d_val == sizeof(Elf_Sym));
		break;
in digest_dynamic(...).

FWIW, if compiled using gcc4 from base (7-BETA4/i386), valgrind freezes
in state umtx during the 

/usr/local/bin/valgrind --tool=memcheck --gen-suppressions=yes true

step of make install. That also happens if I execute 'valgrind /bin/ls'
later on (producing the same error reported in a previous post, i.e.:

/libexec/ld-elf.so.1: /lib/libc.so.7: version FBSD_1.0 required by /bin/ls not defined

Later.

\n\n
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Nikos Ntarmos <ntarmos_at_ceid.upatras.gr>

iD8DBQFHZUnCm6J1ac+VFgoRArkBAKCAIYxiBtpsFDQg4HuygxcEALlTCQCfcBNH
3nj+ARrQKH1/i0tWjwc5OGA=
=L6Ag
-----END PGP SIGNATURE-----
Received on Sun Dec 16 2007 - 15:21:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:24 UTC