|
From: <sv...@va...> - 2007-09-10 13:49:02
|
Author: sewardj
Date: 2007-09-10 14:48:49 +0100 (Mon, 10 Sep 2007)
New Revision: 6810
Log:
Top level build stuff for Thrcheck.
Modified:
branches/THRCHECK/Makefile.am
branches/THRCHECK/configure.in
branches/THRCHECK/glibc-2.5.supp
Modified: branches/THRCHECK/Makefile.am
===================================================================
--- branches/THRCHECK/Makefile.am 2007-09-10 13:47:20 UTC (rev 6809)
+++ branches/THRCHECK/Makefile.am 2007-09-10 13:48:49 UTC (rev 6810)
@@ -8,6 +8,7 @@
callgrind \
massif \
lackey \
+ thrcheck \
none
# Temporary: we want to compile Helgrind, but not regtest it.
Modified: branches/THRCHECK/configure.in
===================================================================
--- branches/THRCHECK/configure.in 2007-09-10 13:47:20 UTC (rev 6809)
+++ branches/THRCHECK/configure.in 2007-09-10 13:48:49 UTC (rev 6810)
@@ -979,6 +979,9 @@
helgrind/Makefile
helgrind/tests/Makefile
helgrind/docs/Makefile
+ thrcheck/Makefile
+ thrcheck/tests/Makefile
+ thrcheck/docs/Makefile
massif/Makefile
massif/hp2ps/Makefile
massif/tests/Makefile
Modified: branches/THRCHECK/glibc-2.5.supp
===================================================================
--- branches/THRCHECK/glibc-2.5.supp 2007-09-10 13:47:20 UTC (rev 6809)
+++ branches/THRCHECK/glibc-2.5.supp 2007-09-10 13:48:49 UTC (rev 6810)
@@ -213,3 +213,146 @@
obj:/lib/libpthread-0.10.so
fun:pthread_create
}
+
+##----------------------------------------------------------------------##
+# Suppressions for the Thrcheck tool
+
+{
+ thrcheck-glibc25-1
+ Thrcheck:Race
+ fun:_dl_lookup_symbol_x
+ fun:_dl_fixup
+ fun:_dl_runtime_resolve
+}
+{
+ thrcheck-glibc25-1.1
+ Thrcheck:Race
+ fun:do_lookup_x
+ fun:_dl_lookup_symbol_x
+ fun:_dl_fixup
+}
+{
+ thrcheck-glibc25-2
+ Thrcheck:Race
+ fun:pthread_join
+ fun:pthread_join
+}
+{
+ thrcheck-glibc25-3
+ Thrcheck:Race
+ fun:__free_tcb
+ fun:pthread_join
+ fun:pthread_join
+}
+{
+ thrcheck-glibc25-4
+ Thrcheck:Race
+ fun:_IO_file_xsputn*
+ fun:vfprintf
+ fun:*printf
+}
+{
+ thrcheck-glibc25-5
+ Thrcheck:Race
+ fun:_IO_file_overflow*
+ fun:_IO_file_xsputn*
+ fun:*printf
+}
+{
+ thrcheck-glibc25-6
+ Thrcheck:Race
+ fun:vfprintf
+ fun:printf
+}
+{
+ thrcheck-glibc25-7
+ Thrcheck:Race
+ fun:new_do_write
+ fun:_IO_do_write*
+ fun:_IO_file_xsputn*
+ fun:*printf
+}
+{
+ thrcheck-glibc25-7a
+ Thrcheck:Race
+ fun:new_do_write
+ fun:_IO_file_xsputn*
+ fun:*printf
+}
+{
+ thrcheck-glibc25-8
+ Thrcheck:Race
+ fun:new_do_write
+ fun:_IO_do_write*
+ fun:_IO_file_overflow*
+ fun:_IO_file_xsputn*
+}
+{
+ thrcheck-glibc25-9
+ Thrcheck:Race
+ fun:start_thread
+ fun:clone
+}
+{
+ thrcheck-glibc25-10
+ Thrcheck:Race
+ fun:_dl_fini
+ fun:exit
+}
+
+{
+ thrcheck-wrappers-glibc-mutex_lock-1
+ Thrcheck:Race
+ fun:pthread_mutex_lock
+ fun:pthread_mutex_lock
+}
+
+{
+ thrcheck-wrappers-glibc-create-1
+ Thrcheck:Race
+ fun:pthread_create@@GLIBC_*
+ fun:pthread_create@*
+}
+
+# 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-wrappers-glibc-cond_sig-1
+ Thrcheck:Race
+ fun:pthread_cond_signal@@GLIBC_2.3.2
+}
+
+# ditto
+{
+ thrcheck-wrappers-glibc-cond_wait-1
+ Thrcheck:Race
+ fun:pthread_cond_wait@@GLIBC_2.3.2
+}
+
+# ditto
+{
+ thrcheck-wrappers-glibc-mutex_trylock-1
+ Thrcheck:Race
+ fun:pthread_mutex_trylock
+}
+
+
+{
+ thrcheck-wrappers-glibc-cond_wait-1
+ Thrcheck:Race
+ fun:pthread_cond_wait@@GLIBC_*
+ fun:pthread_cond_wait*
+}
+
+{
+ thrcheck-wrappers-1000
+ Thrcheck:Race
+ fun:__pthread_mutex_unlock_usercnt
+ fun:pthread_mutex_unlock
+ fun:pthread_mutex_unlock
+}
|