]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Suppress all races whose top frame is in libc.so. This is a not very
authorJulian Seward <jseward@acm.org>
Fri, 2 Jan 2009 23:17:02 +0000 (23:17 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 2 Jan 2009 23:17:02 +0000 (23:17 +0000)
clever interim solution to the problem of Helgrind reporting lots of
false races in glibc's stdio functions, due to it not seeing the
relevant (inlined, alas) locking that glibc uses.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8897

glibc-2.34567-NPTL-helgrind.supp

index d73b88814e58e9418608c976e366d4f461fde973..4b910238522aefe5d294502eb163d9df00f8a789 100644 (file)
@@ -8,70 +8,72 @@
 # These are generic cover-alls which catch a lot of stuff
 # in various combinations of ld, libc and libpthread
 #
+# Note this is heavyhanded and not very clever:
+#
+# - suppress anything that has its top frame in ld.so
+#   That's fine, since it's mostly dynamic linking stuff,
+#   which has various deliberate (harmless) races
+#
+# - suppress anything that has its top frame in libc.so.
+#   This really isn't clever, since it could hide some 
+#   legitimate races.  But the problem is, if we don't do
+#   this, then loads of errors to do with stdio are reported, because
+#   H fails to see glibc's internal locking/unlocking of FILE*s
+#   as required by POSIX.  A better solution is needed.
+
 {
    helgrind-glibc2X-001
    Helgrind:Race
    obj:/lib*/ld-2.*so*
 }
+
 # helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
+
 # helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
+
 {
    helgrind-glibc2X-004
    Helgrind:Race
    obj:/lib*/libc-2.*so*
-   obj:/lib*/libc-2.*so*
 }
+
 {
    helgrind-glibc2X-005
    Helgrind:Race
    obj:/lib*/libpthread-2.*so*
    obj:/lib*/libpthread-2.*so*
-   obj:/lib*/libpthread-2.*so*
-}
-{
-   helgrind-glibc2X-006
-   Helgrind:Race
-   obj:/lib*/libpthread-2.*so*
-   obj:/lib*/libpthread-2.*so*
-   obj:/lib*/libc-2.*so*
 }
+
+# helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
+
 # helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
+
 {
    helgrind-glibc2X-008
    Helgrind:Race
    obj:/lib*/libpthread-2.*so*
    obj:/lib*/libc-2.*so*
 }
-{
-   helgrind-glibc2X-009
-   Helgrind:Race
-   obj:/lib*/libc-2.*so*
-   fun:*
-   obj:/lib*/libc-2.*so*
-}
+
+# helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
+
 # helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
-{
-   helgrind-glibc2X-011
-   Helgrind:Race
-   obj:/lib*/libc-2.*so*
-   obj:/lib*/libpthread-2.*so*
-}
+
+# helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
+
 # helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
+
 # helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
+
 # helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
-{
-   helgrind-glibc2X-015
-   Helgrind:Race
-   obj:/lib*/libc-2.*so*
-   obj:/lib*/libdl-2.*so*
-   obj:/lib*/ld-2.*so*
-}
+
+# helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
+
 {
    helgrind-glibc2X-016
    Helgrind:Race
    obj:/lib*/libpthread-2.*so*
    obj:/lib*/ld-2.*so*
-   obj:/lib*/ld-2.*so*
 }
 
 # These are very ugly.  They are needed to suppress errors inside (eg)
 # To do with dynamic linking
 #
 # helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
+