Hello,

One of the Valgrind core features drd depends on for operating
correctly is the ability to recognize .got.plt sections. (This is
necessary to suppress data race reports on these sections.) It seems
like these sections are recognized correctly on AMD64, but not on
i386: when I insert the statement below in drd_instrument(), the drd
tool does not halt on this assert statement, although every
dynamically linked executable has a .got.plt section.

      tl_assert(VG_(seginfo_sect_kind)(st->Ist.IMark.addr) != Vg_SectPLT);

Can anyone give me some advice where to start looking for the cause of
this phenomenon ?

More details:

$ uname -a
Linux ... 2.6.16.53-0.8-default #1 Fri Aug 31 13:07:27 UTC 2007 i686
i686 i386 GNU/Linux
$ VALGRIND_LIB=$PWD/.in_place coregrind/valgrind --tool=exp-drd
exp-drd/tests/fp_race -m
(false positives are reported on the .got.plt sections, while no data
races should be reported)
$ objdump -x exp-drd/tests/fp_race | grep plt
  9 .rel.plt      00000060  08048464  08048464  00000464  2**2
 11 .plt          000000d0  080484dc  080484dc  000004dc  2**2
 21 .got.plt      0000003c  08049c0c  08049c0c  00000c0c  2**2
08048464 l    d  .rel.plt       00000000              .rel.plt
080484dc l    d  .plt   00000000              .plt
08049c0c l    d  .got.plt       00000000              .got.plt
08049c0c l     O .got.plt       00000000              .hidden
_GLOBAL_OFFSET_TABLE_

-- 
Regards,

Bart Van Assche.

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to