Rationalise standard suppressions: get rid of vast amounts of
near-duplication on the suppressions concerning combinations of
libc, ld and libpthread.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8865 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/glibc-2.34567-NPTL-helgrind.supp b/glibc-2.34567-NPTL-helgrind.supp
index e3a5319..3aface5 100644
--- a/glibc-2.34567-NPTL-helgrind.supp
+++ b/glibc-2.34567-NPTL-helgrind.supp
@@ -1,97 +1,105 @@
 
 ##----------------------------------------------------------------------##
 # Suppressions for the Helgrind tool when using 
-# a glibc-2.{2,3,4,5,6} system
+# a glibc-2.{3,4,5,6,7,8,9} system
 
-######------------ glibc-2.5 specific ------------######
+####################################################
+# glibc-2.X specific
+# These are generic cover-alls which catch a lot of stuff
+# in various combinations of ld, libc and libpthread
 #
-## NB.  This is the "reference set".  Derived sets for
-## glibc 2.7, 2.6, 2.4 and 2.3 follow below.
 {
-   helgrind-glibc25-001
+   helgrind-glibc2X-001
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/ld-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/ld-2.*so*
 }
 {
-   helgrind-glibc25-002
+   helgrind-glibc2X-002
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/libc-2.5.*so
-   obj:/lib*/ld-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/libc-2.*so*
+   obj:/lib*/ld-2.*so*
 }
 {
-   helgrind-glibc25-003
+   helgrind-glibc2X-003
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/libc-2.5.*so
-   obj:/lib*/libc-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/libc-2.*so*
+   obj:/lib*/libc-2.*so*
 }
 {
-   helgrind-glibc25-004
+   helgrind-glibc2X-004
    Helgrind:Race
-   obj:/lib*/libc-2.5.*so
-   obj:/lib*/libc-2.5.*so
+   obj:/lib*/libc-2.*so*
+   obj:/lib*/libc-2.*so*
 }
 {
-   helgrind-glibc25-005
+   helgrind-glibc2X-005
    Helgrind:Race
-   obj:/lib*/libpthread-2.5.*so
-   obj:/lib*/libpthread-2.5.*so
-   obj:/lib*/libpthread-2.5.*so
+   obj:/lib*/libpthread-2.*so*
+   obj:/lib*/libpthread-2.*so*
+   obj:/lib*/libpthread-2.*so*
 }
 {
-   helgrind-glibc25-006
+   helgrind-glibc2X-006
    Helgrind:Race
-   obj:/lib*/libpthread-2.5.*so
-   obj:/lib*/libpthread-2.5.*so
-   obj:/lib*/libc-2.5.*so
+   obj:/lib*/libpthread-2.*so*
+   obj:/lib*/libpthread-2.*so*
+   obj:/lib*/libc-2.*so*
 }
 {
-   helgrind-glibc25-007
+   helgrind-glibc2X-007
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/libc-2.5.*so
-   obj:/lib*/libdl-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/libc-2.*so*
+   obj:/lib*/libdl-2.*so*
 }
 {
-   helgrind-glibc25-008
+   helgrind-glibc2X-008
    Helgrind:Race
-   obj:/lib*/libpthread-2.5.*so
-   obj:/lib*/libc-2.5.*so
+   obj:/lib*/libpthread-2.*so*
+   obj:/lib*/libc-2.*so*
 }
 {
-   helgrind-glibc25-009
+   helgrind-glibc2X-009
    Helgrind:Race
-   obj:/lib*/libc-2.5.*so
+   obj:/lib*/libc-2.*so*
    fun:*
-   obj:/lib*/libc-2.5.*so
+   obj:/lib*/libc-2.*so*
 }
 {
-   helgrind-glibc25-010
+   helgrind-glibc2X-010
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/libpthread-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/libpthread-2.*so*
 }
 {
-   helgrind-glibc25-011
+   helgrind-glibc2X-011
    Helgrind:Race
-   obj:/lib*/libc-2.5.*so
-   obj:/lib*/libpthread-2.5.*so
+   obj:/lib*/libc-2.*so*
+   obj:/lib*/libpthread-2.*so*
 }
 {
-   helgrind-glibc25-013
+   helgrind-glibc2X-012
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/libc-2.*so*
+}
+{
+   helgrind-glibc2X-013
+   Helgrind:Race
+   obj:/lib*/ld-2.*so*
    fun:*
-   obj:/lib*/ld-2.5.*so
+   obj:/lib*/ld-2.*so*
 }
 {
-   helgrind-glibc25-014
+   helgrind-glibc2X-014
    Helgrind:Race
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/ld-2.5.*so
-   obj:/lib*/libpthread-2.5.*so
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/ld-2.*so*
+   obj:/lib*/libpthread-2.*so*
 }
 
 # These are very ugly.  They are needed to suppress errors inside (eg)
@@ -102,409 +110,79 @@
 # Therefore it's only one level of unwinding before we're back out in
 # user code rather than the 2 levels you'd expect.
 {
-   helgrind-glibc25-101
+   helgrind-glibc2X-101
    Helgrind:Race
-   obj:/lib*/libpthread-2.5.*so
+   obj:/lib*/libpthread-2.*so*
    fun:pthread_*
 }
 {
-   helgrind-glibc25-102
+   helgrind-glibc2X-102
    Helgrind:Race
    fun:mythread_wrapper
-   obj:/lib*/libpthread-2.5.*so
+   obj:/lib*/libpthread-2.*so*
 }
 {
-   helgrind-glibc25-103
+   helgrind-glibc2X-103
    Helgrind:Race
-   fun:pthread_cond_*@@GLIBC_2.3.2
+   fun:pthread_cond_*@@GLIBC_2.*
 }
 {
-   helgrind-glibc25-104
+   helgrind-glibc2X-104
    Helgrind:Race
    fun:__lll_mutex_*
 }
 {
-   helgrind-glibc25-105
+   helgrind-glibc2X-105
    Helgrind:Race
    fun:pthread_rwlock_*lock*
 }
 {
-   helgrind-glibc25-107
-   Helgrind:Race
-   obj:/lib*/libpthread-2.5.*so
-   fun:sem_*
-}
-{
-   helgrind-glibc25-108
-   Helgrind:Race
-   fun:clone
-}
-{
-   helgrind-glibc25-109
-   Helgrind:Race
-   fun:start_thread
-}
-
-######------------ glibc-2.8 specific ---------######
-#
-{
-   helgrind-glibc28-001
-   Helgrind:Race
-   obj:/lib*/ld-2.8.*so
-   obj:/lib*/ld-2.8.*so
-}
-{
-   helgrind-glibc28-002
-   Helgrind:Race
-   obj:/lib*/ld-2.8.*so
-   obj:/lib*/libc-2.8.*so
-   obj:/lib*/ld-2.8.*so
-}
-{
-   helgrind-glibc28-003
-   Helgrind:Race
-   obj:/lib*/ld-2.8.*so
-   obj:/lib*/libc-2.8.*so
-   obj:/lib*/libc-2.8.*so
-}
-{
-   helgrind-glibc28-004
-   Helgrind:Race
-   obj:/lib*/libc-2.8.*so
-   obj:/lib*/libc-2.8.*so
-}
-{
-   helgrind-glibc28-006
-   Helgrind:Race
-   obj:/lib*/libpthread-2.8.*so
-   obj:/lib*/libpthread-2.8.*so
-   obj:/lib*/libc-2.8.*so
-}
-{
-   helgrind-glibc28-010
-   Helgrind:Race
-   obj:/lib*/ld-2.8.*so
-   obj:/lib*/libpthread-2.8.*so
-}
-
-{
-   helgrind-glibc28-101
-   Helgrind:Race
-   obj:/lib*/libpthread-2.8.*so
-   fun:pthread_*
-}
-{
-   helgrind-glibc28-102
-   Helgrind:Race
-   fun:mythread_wrapper
-   obj:/lib*/libpthread-2.8.*so
-}
-{
-   helgrind-glibc28-110
-   Helgrind:Race
-   obj:/lib*/libc-2.8.*so
-   fun:pthread_*
-}
-{
-   helgrind-glibc28-111
-   Helgrind:Race
-   fun:__lll_*lock_*
-}
-{
-   helgrind-glibc28-112
-   Helgrind:Race
-   fun:pthread_create@*
-}
-{
-   helgrind-glibc28-113
-   Helgrind:Race
-   fun:pthread_barrier_wait*
-}
-
-######------------ glibc-2.7 specific ---------######
-#
-{
-   helgrind-glibc27-001
-   Helgrind:Race
-   obj:/lib*/ld-2.7.*so
-   obj:/lib*/ld-2.7.*so
-}
-{
-   helgrind-glibc27-003
-   Helgrind:Race
-   obj:/lib*/ld-2.7.*so
-   obj:/lib*/libc-2.7.*so
-   obj:/lib*/libc-2.7.*so
-}
-{
-   helgrind-glibc27-004
-   Helgrind:Race
-   obj:/lib*/libc-2.7.*so
-   obj:/lib*/libc-2.7.*so
-}
-{
-   helgrind-glibc27-005
-   Helgrind:Race
-   obj:/lib*/libpthread-2.7.*so
-   obj:/lib*/libpthread-2.7.*so
-   obj:/lib*/libpthread-2.7.*so
-}
-{
-   helgrind-glibc27-011
-   Helgrind:Race
-   obj:/lib*/libc-2.7.*so
-   obj:/lib*/libpthread-2.7.*so
-}
-
-{
-   helgrind-glibc27-101
-   Helgrind:Race
-   obj:/lib*/libpthread-2.7.*so
-   fun:pthread_*
-}
-{
-   helgrind-glibc27-102
-   Helgrind:Race
-   fun:mythread_wrapper
-   obj:/lib*/libpthread-2.7.*so
-}
-{
-   helgrind-glibc27-107
-   Helgrind:Race
-   obj:/lib*/libpthread-2.7.*so
-   fun:sem_*
-}
-
-######------------ glibc-2.6 specific ---------######
-#
-{
-   helgrind-glibc26-001
-   Helgrind:Race
-   obj:/lib*/ld-2.6.*so
-   obj:/lib*/ld-2.6.*so
-}
-{
-   helgrind-glibc26-003
-   Helgrind:Race
-   obj:/lib*/ld-2.6.*so
-   obj:/lib*/libc-2.6.*so
-   obj:/lib*/libc-2.6.*so
-}
-{
-   helgrind-glibc26-004
-   Helgrind:Race
-   obj:/lib*/libc-2.6.*so
-   obj:/lib*/libc-2.6.*so
-}
-{
-   helgrind-glibc26-005
-   Helgrind:Race
-   obj:/lib*/libpthread-2.6.*so
-   obj:/lib*/libpthread-2.6.*so
-   obj:/lib*/libpthread-2.6.*so
-}
-{
-   helgrind-glibc26-006
-   Helgrind:Race
-   obj:/lib*/libpthread-2.6.*so
-   obj:/lib*/libpthread-2.6.*so
-   obj:/lib*/libc-2.6.*so
-}
-{
-   helgrind-glibc26-008
-   Helgrind:Race
-   obj:/lib*/libpthread-2.6.*so
-   obj:/lib*/libc-2.6.*so
-}
-{
-   helgrind-glibc26-011
-   Helgrind:Race
-   obj:/lib*/libc-2.6.*so
-   obj:/lib*/libpthread-2.6.*so
-}
-{
-   helgrind-glibc26-014
-   Helgrind:Race
-   obj:/lib*/ld-2.6.*so
-   obj:/lib*/ld-2.6.*so
-   obj:/lib*/libpthread-2.6.*so
-}
-
-{
-   helgrind-glibc26-101
-   Helgrind:Race
-   obj:/lib*/libpthread-2.6.*so
-   fun:pthread_*
-}
-{
-   helgrind-glibc26-102
-   Helgrind:Race
-   fun:mythread_wrapper
-   obj:/lib*/libpthread-2.6.*so
-}
-{
-   helgrind-glibc26-106
+   helgrind-glibc2X-106
    Helgrind:Race
    fun:__lll_lock_wait
 }
 {
-   helgrind-glibc26-107
+   helgrind-glibc2X-107
    Helgrind:Race
-   obj:/lib*/libpthread-2.6.*so
+   obj:/lib*/libpthread-2.*so*
    fun:sem_*
 }
-
-######------------ glibc-2.4 specific ------------######
-#
 {
-   helgrind-glibc24-001
+   helgrind-glibc2X-108
    Helgrind:Race
-   obj:/lib*/ld-2.4.*so
-   obj:/lib*/ld-2.4.*so
+   fun:clone
 }
 {
-   helgrind-glibc24-003
+   helgrind-glibc2X-109
    Helgrind:Race
-   obj:/lib*/ld-2.4.*so
-   obj:/lib*/libc-2.4.*so
-   obj:/lib*/libc-2.4.*so
+   fun:start_thread
 }
 {
-   helgrind-glibc24-004
+   helgrind-glibc2X-110
    Helgrind:Race
-   obj:/lib*/libc-2.4.*so
-   obj:/lib*/libc-2.4.*so
-}
-{
-   helgrind-glibc24-005
-   Helgrind:Race
-   obj:/lib*/libpthread-2.4.*so
-   obj:/lib*/libpthread-2.4.*so
-   obj:/lib*/libpthread-2.4.*so
-}
-{
-   helgrind-glibc24-006
-   Helgrind:Race
-   obj:/lib*/libpthread-2.4.*so
-   obj:/lib*/libpthread-2.4.*so
-   obj:/lib*/libc-2.4.*so
-}
-{
-   helgrind-glibc24-008
-   Helgrind:Race
-   obj:/lib*/libpthread-2.4.*so
-   obj:/lib*/libc-2.4.*so
-}
-{
-   helgrind-glibc24-010
-   Helgrind:Race
-   obj:/lib*/ld-2.4.*so
-   obj:/lib*/libpthread-2.4.*so
-}
-{
-   helgrind-glibc24-011
-   Helgrind:Race
-   obj:/lib*/libc-2.4.*so
-   obj:/lib*/libpthread-2.4.*so
-}
-
-{
-   helgrind-glibc24-101
-   Helgrind:Race
-   obj:/lib*/libpthread-2.4.*so
+   obj:/lib*/libc-2.*so*
    fun:pthread_*
 }
 {
-   helgrind-glibc24-102
+   helgrind-glibc2X-111
    Helgrind:Race
-   fun:mythread_wrapper
-   obj:/lib*/libpthread-2.4.*so
-}
-
-######--------- glibc-2.3 specific ---------######
-{
-   helgrind-glibc23-001
-   Helgrind:Race
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/ld-2.3.*so
+   fun:__lll_*lock_*
 }
 {
-   helgrind-glibc23-002
+   helgrind-glibc2X-112
    Helgrind:Race
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/libc-2.3.*so
-   obj:/lib*/ld-2.3.*so
+   fun:pthread_create@*
 }
 {
-   helgrind-glibc23-003
+   helgrind-glibc2X-113
    Helgrind:Race
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/libc-2.3.*so
-   obj:/lib*/libc-2.3.*so
-}
-{
-   helgrind-glibc23-004
-   Helgrind:Race
-   obj:/lib*/libc-2.3.*so
-   obj:/lib*/libc-2.3.*so
-}
-{
-   helgrind-glibc23-006
-   Helgrind:Race
-   obj:/lib*/libpthread-2.3.*so
-   obj:/lib*/libpthread-2.3.*so
-   obj:/lib*/libc-2.3.*so
-}
-{
-   helgrind-glibc23-008
-   Helgrind:Race
-   obj:/lib*/libpthread-2.3.*so
-   obj:/lib*/libc-2.3.*so
-}
-{
-   helgrind-glibc23-009
-   Helgrind:Race
-   obj:/lib*/libc-2.3.*so
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/libc-2.3.*so
-}
-{
-   helgrind-glibc23-011
-   Helgrind:Race
-   obj:/lib*/libc-2.3.*so
-   obj:/lib*/libpthread-2.3.*so
-}
-{
-   helgrind-glibc23-012
-   Helgrind:Race
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/libc-2.3.*so
-}
-{
-   helgrind-glibc23-014
-   Helgrind:Race
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/ld-2.3.*so
-   obj:/lib*/libpthread-2.3.*so
-}
-
-{
-   helgrind-glibc23-100
-   Helgrind:Race
-   obj:/lib*/libpthread-2.3.*so
-   fun:pthread_*
-}
-{
-   helgrind-glibc23-101
-   Helgrind:Race
-   fun:mythread_wrapper
-   obj:/lib*/libpthread-2.3.*so
+   fun:pthread_barrier_wait*
 }
 
 
 ####################################################
-######------ qt4 specific (GNU mangling) ------######
+# qt4 specific (GNU mangling)
+#
 {
    helgrind-qt4---QMutex::lock()-QMutex::lock()
    Helgrind:Race