Data races on *stdout / *stderr are now suppressed via these objects itselves instead of via suppression patterns.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7848 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_pthread_intercepts.c b/exp-drd/drd_pthread_intercepts.c
index 36793c6..6e1e6d8 100644
--- a/exp-drd/drd_pthread_intercepts.c
+++ b/exp-drd/drd_pthread_intercepts.c
@@ -98,6 +98,11 @@
 {
   check_threading_library();
   vg_set_main_thread_state();
+  /* glibc up to and including version 2.7 triggers conflicting accesses   */
+  /* on stdout and stderr when sending output to one of these streams from */
+  /* more than one thread. Suppress data race reports on these objects.    */
+  DRD_IGNORE_VAR(*stdout);
+  DRD_IGNORE_VAR(*stderr);
 }
 
 static MutexT pthread_to_drd_mutex_type(const int kind)
diff --git a/glibc-2.X-drd.supp b/glibc-2.X-drd.supp
index 9253186..26e1735 100644
--- a/glibc-2.X-drd.supp
+++ b/glibc-2.X-drd.supp
@@ -76,29 +76,6 @@
    obj:/lib*/libc-*
 }
 {
-   libc-race-in-vfprintf
-   exp-drd:ConflictingAccess
-   fun:vfprintf
-}
-{
-   libc-race-in-vsnprintf
-   exp-drd:ConflictingAccess
-   fun:vsnprintf
-}
-{
-   libc-race-in-vsnprintf
-   exp-drd:ConflictingAccess
-   obj:/lib*/libc-*
-   fun:vsnprintf
-}
-{
-   libc-race-in-vsnprintf
-   exp-drd:ConflictingAccess
-   obj:/lib*/libc-*
-   obj:/lib*/libc-*
-   fun:vsnprintf
-}
-{
    librt
    exp-drd:ConflictingAccess
    fun:__librt_enable_asynccancel