|
From: <sv...@va...> - 2007-09-20 14:30:34
|
Author: sewardj
Date: 2007-09-20 15:30:35 +0100 (Thu, 20 Sep 2007)
New Revision: 6874
Log:
Move all the Thrcheck-specific suppressions for glibc2.X into a common
file, in order to avoid duplicating them in glibc-2.{2,3,4,5,6}.supp.
Added:
branches/THRCHECK/glibc-2.X-thrcheck.supp
Modified:
branches/THRCHECK/Makefile.am
branches/THRCHECK/configure.in
branches/THRCHECK/glibc-2.3.supp
branches/THRCHECK/glibc-2.4.supp
branches/THRCHECK/glibc-2.5.supp
Modified: branches/THRCHECK/Makefile.am
===================================================================
--- branches/THRCHECK/Makefile.am 2007-09-20 14:26:47 UTC (rev 6873)
+++ branches/THRCHECK/Makefile.am 2007-09-20 14:30:35 UTC (rev 6874)
@@ -19,7 +19,8 @@
SUPP_FILES = \
glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
- glibc-2.6.supp aix5libc.supp xfree-3.supp xfree-4.supp
+ glibc-2.6.supp aix5libc.supp xfree-3.supp xfree-4.supp \
+ glibc-2.X-thrcheck.supp
dist_val_DATA = $(SUPP_FILES) default.supp
Modified: branches/THRCHECK/configure.in
===================================================================
--- branches/THRCHECK/configure.in 2007-09-20 14:26:47 UTC (rev 6873)
+++ branches/THRCHECK/configure.in 2007-09-20 14:30:35 UTC (rev 6874)
@@ -473,30 +473,30 @@
2.2)
AC_MSG_RESULT(2.2 family)
AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
- DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.2.supp glibc-2.X-thrcheck.supp ${DEFAULT_SUPP}"
;;
2.3)
AC_MSG_RESULT(2.3 family)
AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
- DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.3.supp glibc-2.X-thrcheck.supp ${DEFAULT_SUPP}"
;;
2.4)
AC_MSG_RESULT(2.4 family)
AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
- DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.4.supp glibc-2.X-thrcheck.supp ${DEFAULT_SUPP}"
;;
2.5)
AC_MSG_RESULT(2.5 family)
AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
- DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.5.supp glibc-2.X-thrcheck.supp ${DEFAULT_SUPP}"
;;
2.6)
AC_MSG_RESULT(2.6 family)
AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
- DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.6.supp glibc-2.X-thrcheck.supp ${DEFAULT_SUPP}"
;;
aix5)
AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
Modified: branches/THRCHECK/glibc-2.3.supp
===================================================================
--- branches/THRCHECK/glibc-2.3.supp 2007-09-20 14:26:47 UTC (rev 6873)
+++ branches/THRCHECK/glibc-2.3.supp 2007-09-20 14:30:35 UTC (rev 6874)
@@ -610,39 +610,3 @@
obj:/lib/libpthread-0.10.so
fun:pthread_create
}
-
-##----------------------------------------------------------------------##
-# Suppressions for the Thrcheck tool
-
-###--- ld.so stuff ---###
-{
- thrcheck-glibc23-ldso-1
- Thrcheck:Race
- fun:_dl_lookup_symbol_x
- fun:fixup
- fun:_dl_runtime_resolve
-}
-
-###--- pthread_join ---###
-{
- thrcheck-glibc23-pthjoin-1
- Thrcheck:Race
- fun:pthread_join
- fun:pthread_join
-}
-
-###--- pthread_mutex_lock ---###
-{
- thrcheck-glibc23-pthmxlock-1
- Thrcheck:Race
- fun:pthread_mutex_lock
- fun:pthread_mutex_lock
-}
-
-###--- pthread_create ---###
-{
- thrcheck-glibc23-pthcreate-1
- Thrcheck:Race
- fun:pthread_create@@GLIBC_*
- fun:pthread_create@*
-}
Modified: branches/THRCHECK/glibc-2.4.supp
===================================================================
--- branches/THRCHECK/glibc-2.4.supp 2007-09-20 14:26:47 UTC (rev 6873)
+++ branches/THRCHECK/glibc-2.4.supp 2007-09-20 14:30:35 UTC (rev 6874)
@@ -259,46 +259,3 @@
obj:/lib/libpthread-0.10.so
fun:pthread_create
}
-
-
-##----------------------------------------------------------------------##
-# Thrcheck tool, x86-linux, glibc-2.4
-{
- thrcheck-glibc24-x86-1
- Thrcheck:Race
- fun:pthread_join*
- fun:pthread_join*
-}
-{
- thrcheck-glibc24-x86-2
- Thrcheck:Race
- fun:_dl_lookup_symbol_x
- fun:_dl_fixup
- fun:_dl_runtime_resolve
-}
-{
- thrcheck-glibc24-x86-3
- Thrcheck:Race
- fun:__free_tcb
- fun:pthread_join*
- fun:pthread_join*
-}
-{
- thrcheck-glibc24-x86-4
- Thrcheck:Race
- fun:pthread_mutex_lock*
- fun:pthread_mutex_lock*
-}
-{
- thrcheck-glibc24-x86-5
- Thrcheck:Race
- fun:do_clone
- fun:pthread_create*
- fun:pthread_create*
-}
-{
- thrcheck-glibc24-ppc64-1
- Thrcheck:Race
- fun:__free_tcb
- fun:pthread_join
-}
Modified: branches/THRCHECK/glibc-2.5.supp
===================================================================
--- branches/THRCHECK/glibc-2.5.supp 2007-09-20 14:26:47 UTC (rev 6873)
+++ branches/THRCHECK/glibc-2.5.supp 2007-09-20 14:30:35 UTC (rev 6874)
@@ -213,281 +213,3 @@
obj:/lib/libpthread-0.10.so
fun:pthread_create
}
-
-##----------------------------------------------------------------------##
-# Suppressions for the Thrcheck tool
-
-###--- ld.so stuff ---###
-{
- thrcheck-glibc25-ldso-1
- Thrcheck:Race
- fun:_dl_lookup_symbol_x
- fun:_dl_fixup
- fun:_dl_runtime_resolve
-}
-{
- thrcheck-glibc25-ldso-2
- Thrcheck:Race
- fun:do_lookup_x
- fun:_dl_lookup_symbol_x
- fun:_dl_fixup
-}
-{
- thrcheck-glibc25-ldso-3
- Thrcheck:Race
- fun:_dl_map_object_deps
- fun:dl_open_worker
- fun:_dl_catch_error
-}
-{
- thrcheck-glibc25-ldso-4
- Thrcheck:Race
- fun:setup_direct
- fun:_dl_map_object_deps
- fun:dl_open_worker
-}
-{
- thrcheck-glibc25-ldso-5
- Thrcheck:Race
- fun:_dl_map_object_from_fd
- fun:_dl_map_object
- fun:dl_open_worker
-}
-{
- thrcheck-glibc25-ldso-6
- Thrcheck:Race
- fun:_dl_map_object
- fun:dl_open_worker
- fun:_dl_catch_error
-}
-
-###--- pthread_join ---###
-{
- thrcheck-glibc25-pthjoin-1
- Thrcheck:Race
- fun:pthread_join
- fun:pthread_join
-}
-{
- thrcheck-glibc25-pthjoin-2
- Thrcheck:Race
- fun:__free_tcb
- fun:pthread_join
- fun:pthread_join
-}
-
-###--- IO_file ---###
-{
- thrcheck-glibc25-IOfile-1
- Thrcheck:Race
- fun:_IO_file_xsputn*
- fun:vfprintf
- fun:*printf
-}
-{
- thrcheck-glibc25-IOfile-2
- Thrcheck:Race
- fun:_IO_file_overflow*
- fun:_IO_file_xsputn*
- fun:*printf
-}
-{
- thrcheck-glibc25-IOfile-3
- Thrcheck:Race
- fun:new_do_write
- fun:_IO_do_write*
- fun:_IO_file_xsputn*
- fun:*printf
-}
-{
- thrcheck-glibc25-IOfile-4
- Thrcheck:Race
- fun:new_do_write
- fun:_IO_file_xsputn*
- fun:*printf
-}
-{
- thrcheck-glibc25-IOfile-5
- Thrcheck:Race
- fun:new_do_write
- fun:_IO_do_write*
- fun:_IO_file_overflow*
- fun:_IO_file_xsputn*
-}
-
-###--- thread creation ---###
-{
- thrcheck-glibc25-creation-1
- Thrcheck:Race
- fun:start_thread
- fun:clone
-}
-
-###--- thread exit ---###
-{
- thrcheck-glibc25-exit-1
- Thrcheck:Race
- fun:_dl_fini
- fun:exit
-}
-
-###--- pthread_mutex_lock ---###
-{
- thrcheck-glibc25-pthmxlock-1
- Thrcheck:Race
- fun:pthread_mutex_lock
- fun:pthread_mutex_lock
-}
-{
- thrcheck-glibc25-pthmxlock-2
- Thrcheck:Race
- fun:__lll_mutex_lock_wait
- fun:pthread_mutex_lock
-}
-
-###--- pthread_mutex_destroy ---###
-{
- thrcheck-glibc25-pthmxlock-2
- Thrcheck:Race
- fun:pthread_mutex_destroy
- fun:pthread_mutex_destroy
-}
-
-###--- pthread_create ---###
-{
- thrcheck-glibc25-pthcreate-1
- Thrcheck:Race
- fun:pthread_create@@GLIBC_*
- fun:pthread_create@*
-}
-{
- thrcheck-glibc25-pthcreate-2
- Thrcheck:Race
- fun:do_clone
- fun:pthread_create@@GLIBC_*
- fun:pthread_create@*
-}
-
-###--- pthread_cond_signal ---###
-#
-# This is very ugly. It is needed to suppress errors inside
-# NPTL's pthread_cond_signal. Why only one stack frame --
-# at least we should see the wrapper calling the real function,
-# right? Unfortunately, no: the real function is 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.
-{
- thrcheck-glibc25-condsig-1
- Thrcheck:Race
- fun:pthread_cond_signal@@GLIBC_2.3.2
-}
-
-###--- pthread_cond_broadcast ---###
-# ditto
-{
- thrcheck-glibc25-condbcast-1
- Thrcheck:Race
- fun:pthread_cond_broadcast@@GLIBC_2.3.2
-}
-
-###--- pthread_cond_wait ---###
-# ditto
-{
- thrcheck-glibc25-pthcondwait-1
- Thrcheck:Race
- fun:pthread_cond_wait@@GLIBC_2.3.2
-}
-{
- thrcheck-glibc25-pthcondwait-2
- Thrcheck:Race
- fun:pthread_cond_wait@@GLIBC_*
- fun:pthread_cond_wait*
-}
-
-###--- pthread_mutex_trylock ---###
-# ditto
-{
- thrcheck-glibc25-pthmxtrylock-1
- Thrcheck:Race
- fun:pthread_mutex_trylock
-}
-
-###--- pthread_cond_timedwait ---###
-{
- thrcheck-glibc25-pthmxtimedwait-1
- Thrcheck:Race
- fun:pthread_cond_timedwait@@GLIBC_*
- fun:pthread_cond_timedwait*
-}
-{
- thrcheck-glibc25-pthmxtimedwait-2
- Thrcheck:Race
- fun:__lll_mutex_lock_wait
- fun:pthread_cond_timedwait@@GLIBC_*
- fun:pthread_cond_timedwait*
-}
-
-###--- libpthread internal stuff ---###
-{
- thrcheck-glibc25-libpthread-1
- Thrcheck:Race
- fun:__pthread_mutex_unlock_usercnt
- fun:pthread_mutex_unlock
- fun:pthread_mutex_unlock
-}
-{
- thrcheck-glibc25-libpthread-2
- Thrcheck:Race
- fun:__lll_mutex_unlock_wake
- fun:_L_mutex_unlock_*
- fun:__pthread_mutex_unlock_usercnt
-}
-{
- thrcheck-glibc25-libpthread-3
- Thrcheck:Race
- fun:__lll_mutex_lock_wait
- fun:_L_mutex_lock_*
- fun:start_thread
-}
-{
- thrcheck-glibc25-libpthread-4
- Thrcheck:Race
- fun:__lll_mutex_lock_wait
- fun:_L_mutex_lock_*
- fun:pthread_mutex_lock
-}
-{
- thrcheck-glibc25-libpthread-5
- Thrcheck:Race
- fun:mythread_wrapper
- fun:start_thread
-}
-{
- thrcheck-glibc25-libpthread-6
- Thrcheck:Race
- fun:__deallocate_stack
- fun:start_thread
-}
-{
- thrcheck-glibc25-libpthread-7
- Thrcheck:Race
- fun:__deallocate_stack
- fun:__free_tcb
- fun:start_thread
-}
-{
- thrcheck-glibc25-libpthread-8
- Thrcheck:Race
- fun:__deallocate_stack
- fun:pthread_join
- fun:pthread_join
-}
-
-###--- fork ---###
-{
- thrcheck-glibc25-fork-1
- Thrcheck:Race
- fun:__reclaim_stacks
- fun:fork
-}
Added: branches/THRCHECK/glibc-2.X-thrcheck.supp
===================================================================
--- branches/THRCHECK/glibc-2.X-thrcheck.supp (rev 0)
+++ branches/THRCHECK/glibc-2.X-thrcheck.supp 2007-09-20 14:30:35 UTC (rev 6874)
@@ -0,0 +1,279 @@
+
+##----------------------------------------------------------------------##
+# Suppressions for the Thrcheck tool when using
+# a glibc-2.{2,3,4,5,6} system
+
+###--- ld.so stuff ---###
+{
+ thrcheck-glibc2X-ldso-1
+ Thrcheck:Race
+ fun:_dl_lookup_symbol_x
+ fun:_dl_fixup
+ fun:_dl_runtime_resolve
+}
+{
+ thrcheck-glibc2X-ldso-2
+ Thrcheck:Race
+ fun:do_lookup_x
+ fun:_dl_lookup_symbol_x
+ fun:_dl_fixup
+}
+{
+ thrcheck-glibc2X-ldso-3
+ Thrcheck:Race
+ fun:_dl_map_object_deps
+ fun:dl_open_worker
+ fun:_dl_catch_error
+}
+{
+ thrcheck-glibc2X-ldso-4
+ Thrcheck:Race
+ fun:setup_direct
+ fun:_dl_map_object_deps
+ fun:dl_open_worker
+}
+{
+ thrcheck-glibc2X-ldso-5
+ Thrcheck:Race
+ fun:_dl_map_object_from_fd
+ fun:_dl_map_object
+ fun:dl_open_worker
+}
+{
+ thrcheck-glibc2X-ldso-6
+ Thrcheck:Race
+ fun:_dl_map_object
+ fun:dl_open_worker
+ fun:_dl_catch_error
+}
+
+###--- pthread_join ---###
+{
+ thrcheck-glibc2X-pthjoin-1
+ Thrcheck:Race
+ fun:pthread_join
+ fun:pthread_join
+}
+{
+ thrcheck-glibc2X-pthjoin-2
+ Thrcheck:Race
+ fun:__free_tcb
+ fun:pthread_join
+ fun:pthread_join
+}
+
+###--- IO_file ---###
+{
+ thrcheck-glibc2X-IOfile-1
+ Thrcheck:Race
+ fun:_IO_file_xsputn*
+ fun:vfprintf
+ fun:*printf
+}
+{
+ thrcheck-glibc2X-IOfile-2
+ Thrcheck:Race
+ fun:_IO_file_overflow*
+ fun:_IO_file_xsputn*
+ fun:*printf
+}
+{
+ thrcheck-glibc2X-IOfile-3
+ Thrcheck:Race
+ fun:new_do_write
+ fun:_IO_do_write*
+ fun:_IO_file_xsputn*
+ fun:*printf
+}
+{
+ thrcheck-glibc2X-IOfile-4
+ Thrcheck:Race
+ fun:new_do_write
+ fun:_IO_file_xsputn*
+ fun:*printf
+}
+{
+ thrcheck-glibc2X-IOfile-5
+ Thrcheck:Race
+ fun:new_do_write
+ fun:_IO_do_write*
+ fun:_IO_file_overflow*
+ fun:_IO_file_xsputn*
+}
+
+###--- thread creation ---###
+{
+ thrcheck-glibc2X-creation-1
+ Thrcheck:Race
+ fun:start_thread
+ fun:clone
+}
+
+###--- thread exit ---###
+{
+ thrcheck-glibc2X-exit-1
+ Thrcheck:Race
+ fun:_dl_fini
+ fun:exit
+}
+
+###--- pthread_mutex_lock ---###
+{
+ thrcheck-glibc2X-pthmxlock-1
+ Thrcheck:Race
+ fun:pthread_mutex_lock
+ fun:pthread_mutex_lock
+}
+{
+ thrcheck-glibc2X-pthmxlock-2
+ Thrcheck:Race
+ fun:__lll_mutex_lock_wait
+ fun:pthread_mutex_lock
+}
+
+###--- pthread_mutex_destroy ---###
+{
+ thrcheck-glibc2X-pthmxlock-2
+ Thrcheck:Race
+ fun:pthread_mutex_destroy
+ fun:pthread_mutex_destroy
+}
+
+###--- pthread_create ---###
+{
+ thrcheck-glibc2X-pthcreate-1
+ Thrcheck:Race
+ fun:pthread_create@@GLIBC_*
+ fun:pthread_create@*
+}
+{
+ thrcheck-glibc2X-pthcreate-2
+ Thrcheck:Race
+ fun:do_clone
+ fun:pthread_create@@GLIBC_*
+ fun:pthread_create@*
+}
+
+###--- pthread_cond_signal ---###
+#
+# This is very ugly. It is needed to suppress errors inside
+# NPTL's pthread_cond_signal. Why only one stack frame --
+# at least we should see the wrapper calling the real function,
+# right? Unfortunately, no: the real function is 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.
+{
+ thrcheck-glibc2X-condsig-1
+ Thrcheck:Race
+ fun:pthread_cond_signal@@GLIBC_2.3.2
+}
+
+###--- pthread_cond_broadcast ---###
+# ditto
+{
+ thrcheck-glibc2X-condbcast-1
+ Thrcheck:Race
+ fun:pthread_cond_broadcast@@GLIBC_2.3.2
+}
+
+###--- pthread_cond_wait ---###
+# ditto
+{
+ thrcheck-glibc2X-pthcondwait-1
+ Thrcheck:Race
+ fun:pthread_cond_wait@@GLIBC_2.3.2
+}
+{
+ thrcheck-glibc2X-pthcondwait-2
+ Thrcheck:Race
+ fun:pthread_cond_wait@@GLIBC_*
+ fun:pthread_cond_wait*
+}
+
+###--- pthread_mutex_trylock ---###
+# ditto
+{
+ thrcheck-glibc2X-pthmxtrylock-1
+ Thrcheck:Race
+ fun:pthread_mutex_trylock
+}
+
+###--- pthread_cond_timedwait ---###
+{
+ thrcheck-glibc2X-pthmxtimedwait-1
+ Thrcheck:Race
+ fun:pthread_cond_timedwait@@GLIBC_*
+ fun:pthread_cond_timedwait*
+}
+{
+ thrcheck-glibc2X-pthmxtimedwait-2
+ Thrcheck:Race
+ fun:__lll_mutex_lock_wait
+ fun:pthread_cond_timedwait@@GLIBC_*
+ fun:pthread_cond_timedwait*
+}
+
+###--- libpthread internal stuff ---###
+{
+ thrcheck-glibc2X-libpthread-1
+ Thrcheck:Race
+ fun:__pthread_mutex_unlock_usercnt
+ fun:pthread_mutex_unlock
+ fun:pthread_mutex_unlock
+}
+{
+ thrcheck-glibc2X-libpthread-2
+ Thrcheck:Race
+ fun:__lll_mutex_unlock_wake
+ fun:_L_mutex_unlock_*
+ fun:__pthread_mutex_unlock_usercnt
+}
+{
+ thrcheck-glibc2X-libpthread-3
+ Thrcheck:Race
+ fun:__lll_mutex_lock_wait
+ fun:_L_mutex_lock_*
+ fun:start_thread
+}
+{
+ thrcheck-glibc2X-libpthread-4
+ Thrcheck:Race
+ fun:__lll_mutex_lock_wait
+ fun:_L_mutex_lock_*
+ fun:pthread_mutex_lock
+}
+{
+ thrcheck-glibc2X-libpthread-5
+ Thrcheck:Race
+ fun:mythread_wrapper
+ fun:start_thread
+}
+{
+ thrcheck-glibc2X-libpthread-6
+ Thrcheck:Race
+ fun:__deallocate_stack
+ fun:start_thread
+}
+{
+ thrcheck-glibc2X-libpthread-7
+ Thrcheck:Race
+ fun:__deallocate_stack
+ fun:__free_tcb
+ fun:start_thread
+}
+{
+ thrcheck-glibc2X-libpthread-8
+ Thrcheck:Race
+ fun:__deallocate_stack
+ fun:pthread_join
+ fun:pthread_join
+}
+
+###--- fork ---###
+{
+ thrcheck-glibc2X-fork-1
+ Thrcheck:Race
+ fun:__reclaim_stacks
+ fun:fork
+}
|