|
From: <sv...@va...> - 2013-08-24 17:53:07
|
bart 2013-08-24 17:53:00 +0000 (Sat, 24 Aug 2013)
New Revision: 13511
Log:
drd: Fix bug #323905
Modified files:
trunk/drd/drd_main.c
Modified: trunk/drd/drd_main.c (+16 -0)
===================================================================
--- trunk/drd/drd_main.c 2013-08-24 17:52:26 +00:00 (rev 13510)
+++ trunk/drd/drd_main.c 2013-08-24 17:53:00 +00:00 (rev 13511)
@@ -426,6 +426,22 @@
VG_(dmsg)("Examining %s / %s\n", VG_(DebugInfo_get_filename)(di),
VG_(DebugInfo_get_soname)(di));
+ /*
+ * Suppress the race report on the libpthread global variable
+ * __pthread_multiple_threads. See also
+ * http://bugs.kde.org/show_bug.cgi?id=323905.
+ */
+ avma = VG_(DebugInfo_get_bss_avma)(di);
+ size = VG_(DebugInfo_get_bss_size)(di);
+ tl_assert((avma && size) || (avma == 0 && size == 0));
+ if (size > 0 &&
+ VG_(strcmp)(VG_(DebugInfo_get_soname)(di), "libpthread.so.0") == 0) {
+ if (trace_sectsuppr)
+ VG_(dmsg)("Suppressing .bss @ 0x%lx size %ld\n", avma, size);
+ tl_assert(VG_(DebugInfo_sect_kind)(NULL, 0, avma) == Vg_SectBSS);
+ DRD_(start_suppression)(avma, avma + size, ".bss");
+ }
+
avma = VG_(DebugInfo_get_plt_avma)(di);
size = VG_(DebugInfo_get_plt_size)(di);
tl_assert((avma && size) || (avma == 0 && size == 0));
|