Re: valgrind suppressions for 64bit for ROOT 5.22/00a?

From: Peter Elmer <Peter.Elmer_at_cern.ch>
Date: Sat, 6 Jun 2009 19:31:48 +0200


  Hi Axel and Philippe,

On Sat, Jun 06, 2009 at 07:05:13PM +0200, Axel Naumann wrote:

> the output of
> nm -C -S $ROOTSYS/lib/lib{Core,Cint}.so would allow us to determine
> which symbols the addresses correspond to.

  After my posting I attempted to do some simplification to see if I could figure out from where these warnings were coming. With some rather heavily (frame) wildcarded suppression rules, I managed to eliminate a lot of the warnings coming from dynamically loading libCint.so and/or libCore.so and see that (in our applications) there is a smaller number of such warnings (from strlen, strcat, etc.) coming from the python shared library, frontier, etc. .

  --> So this isn't purely a ROOT problem, it just appeared very often when

      linking to the ROOT libraries. (Apologies for the noise.)

  After that, in case anyone is interested, I attempted all of this in a much more standalone (i.e. non-CMS) environment and narrowed it down so far to the fact that valgrind itself is built with gcc4.3.x/64bit (for either of x={2,3}). When building valgrind with the SLC5 default compiler (RH patched gcc4.1.2) the errors disappear.

  Curiously enough I did manage to get tracebacks from valgrind if the ROOT 5.22/00a build was gcc4.1.2 and valgrind was gcc4.3.2 as in (a) below, but I now think that these are spurious and due to problems in valgrind itself with gcc4.3.2. Looking at the valgrind bugzilla there are similar bug-reports about the "no-debug-info" part of this for ppc:

  https://bugs.kde.org/show_bug.cgi?id=190820

and this (possibly similar) bug report about strlen:

  https://bugs.kde.org/show_bug.cgi?id=190660

The current SVN trunk of valgrind still shows the problems, though.

  [So from this point I'll take it off the ROOT list and you can just consider this a heads-up for possibile oddities and lots of noise with {valgrind3.4.1, gcc4.3.2, 64bit}.. ;-)]

                                   Pete

(a)

==28885== Conditional jump or move depends on uninitialised value(s)
==28885== at 0x3897A7884D: strcpy (in /lib64/libc-2.5.so)
==28885== by 0x53A673B: G__register_sharedlib (loadfile.cxx:3057)
==28885== by 0x5440FE7: G__RegisterLibrary (shl.cxx:2162)
==28885== by 0x53A2E8C: G__add_setup_func (init.cxx:109)
==28885== by 0x4E4A1C4: G__cpp_setup_initG__MetaUtils::G__cpp_setup_initG__MetaUtils() (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E47CC5: __static_initialization_and_destruction_0(int, int) (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E47CF2: global constructors keyed to G__set_cpp_environmentG__MetaUtils (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E55765: (within /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x49A13B2: (within /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x60229DF: ???
==28885== by 0x389760D22A: call_init (in /lib64/ld-2.5.so)
==28885== by 0x389760D334: _dl_init (in /lib64/ld-2.5.so)
==28885== by 0x3897600AA9: (within /lib64/ld-2.5.so)

and things like:

==28885== Conditional jump or move depends on uninitialised value(s)
==28885== at 0x3897A7884D: strcpy (in /lib64/libc-2.5.so)
==28885== by 0x544C0A1: G__defined_tagname (struct.cxx:1620)
==28885== by 0x544C6F5: G__search_tagname (struct.cxx:1765)
==28885== by 0x53BE26D: G__get_linked_tagnum (newlink.cxx:3407)
==28885== by 0x53CBB8D: G__get_linked_tagnum_fwd (newlink.cxx:3428)
==28885== by 0x4E47D3D: G__cpp_setup_tagtableG__MetaUtils (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E4A05A: G__cpp_setupG__MetaUtils (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x53A00C9: G__call_setup_funcs (init.cxx:152)
==28885== by 0x4E4A1C9: G__cpp_setup_initG__MetaUtils::G__cpp_setup_initG__MetaUtils() (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E47CC5: __static_initialization_and_destruction_0(int, int) (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E47CF2: global constructors keyed to G__set_cpp_environmentG__MetaUtils (in /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x4E55765: (within /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x49A13B2: (within /build/elmer/vg/root.4.1.2/lib/libCore.so)
==28885== by 0x60229DF: ???
==28885== by 0x389760D22A: call_init (in /lib64/ld-2.5.so)



Peter Elmer E-mail: Peter.Elmer_at_cern.ch Phone: +41 (22) 767-4644 Address: CERN Division PPE, Bat. 32 2C-14, CH-1211 Geneva 23, Switzerland
Received on Sat Jun 06 2009 - 19:34:22 CEST

This archive was generated by hypermail 2.2.0 : Mon Jun 08 2009 - 11:50:02 CEST