##----------------------------------------------------------------------## # Suppressions for the Helgrind tool when using # a glibc-2.{2,3,4,5,6} system ######------------ glibc-2.5 specific ------------###### # ## 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:Race obj:/lib*/ld-2.5.*so obj:/lib*/ld-2.5.*so } { helgrind-glibc25-002 Helgrind:Race obj:/lib*/ld-2.5.*so obj:/lib*/libc-2.5.*so obj:/lib*/ld-2.5.*so } { helgrind-glibc25-003 Helgrind:Race obj:/lib*/ld-2.5.*so obj:/lib*/libc-2.5.*so obj:/lib*/libc-2.5.*so } { helgrind-glibc25-004 Helgrind:Race obj:/lib*/libc-2.5.*so obj:/lib*/libc-2.5.*so } { helgrind-glibc25-005 Helgrind:Race obj:/lib*/libpthread-2.5.*so obj:/lib*/libpthread-2.5.*so obj:/lib*/libpthread-2.5.*so } { helgrind-glibc25-006 Helgrind:Race obj:/lib*/libpthread-2.5.*so obj:/lib*/libpthread-2.5.*so obj:/lib*/libc-2.5.*so } { helgrind-glibc25-007 Helgrind:Race obj:/lib*/ld-2.5.*so obj:/lib*/libc-2.5.*so obj:/lib*/libdl-2.5.*so } { helgrind-glibc25-008 Helgrind:Race obj:/lib*/libpthread-2.5.*so obj:/lib*/libc-2.5.*so } { helgrind-glibc25-009 Helgrind:Race obj:/lib*/libc-2.5.*so fun:* obj:/lib*/libc-2.5.*so } { helgrind-glibc25-010 Helgrind:Race obj:/lib*/ld-2.5.*so obj:/lib*/libpthread-2.5.*so } { helgrind-glibc25-011 Helgrind:Race obj:/lib*/libc-2.5.*so obj:/lib*/libpthread-2.5.*so } { helgrind-glibc25-013 Helgrind:Race obj:/lib*/ld-2.5.*so fun:* obj:/lib*/ld-2.5.*so } { helgrind-glibc25-014 Helgrind:Race obj:/lib*/ld-2.5.*so obj:/lib*/ld-2.5.*so obj:/lib*/libpthread-2.5.*so } # These are very ugly. They are needed to suppress errors inside (eg) # NPTL's pthread_cond_signal. Why only one stack frame -- at least we # should see the wrapper calling the real functions, right? # Unfortunately, no: the real functions are handwritten assembly (in # the glibc-2.5 sources) and does not create a proper stack frame. # 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:Race obj:/lib*/libpthread-2.5.*so fun:pthread_* } { helgrind-glibc25-102 Helgrind:Race fun:mythread_wrapper obj:/lib*/libpthread-2.5.*so } { helgrind-glibc25-103 Helgrind:Race fun:pthread_cond_*@@GLIBC_2.3.2 } { helgrind-glibc25-104 Helgrind:Race fun:__lll_mutex_* } { helgrind-glibc25-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_* } ######------------ 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:Race fun:__lll_lock_wait } { helgrind-glibc26-107 Helgrind:Race obj:/lib*/libpthread-2.6.*so fun:sem_* } ######------------ glibc-2.4 specific ------------###### # { helgrind-glibc24-001 Helgrind:Race obj:/lib*/ld-2.4.*so obj:/lib*/ld-2.4.*so } { helgrind-glibc24-003 Helgrind:Race obj:/lib*/ld-2.4.*so obj:/lib*/libc-2.4.*so obj:/lib*/libc-2.4.*so } { helgrind-glibc24-004 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 fun:pthread_* } { helgrind-glibc24-102 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 } { helgrind-glibc23-002 Helgrind:Race obj:/lib*/ld-2.3.*so obj:/lib*/libc-2.3.*so obj:/lib*/ld-2.3.*so } { helgrind-glibc23-003 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 } ######------ qt4 specific (GNU mangling) ------###### { helgrind-qt4-QMutex::lock()-twice Helgrind:Race fun:_ZN6QMutex4lockEv fun:_ZN6QMutex4lockEv }