From: Petar Jovanovic Date: Fri, 3 Feb 2017 00:34:52 +0000 (+0000) Subject: add suppression for helgrind/tests/tc22_exit_w_lock X-Git-Tag: svn/VALGRIND_3_13_0~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c5f77b858e2adac0d54a53db85f1a6a4eb1acc9;p=thirdparty%2Fvalgrind.git add suppression for helgrind/tests/tc22_exit_w_lock Function pthread_create indirectly calls function memcpy. Helgrind considers that memcpy is not thread safe function. For error reported from pthread_create there is the suppression helgrind---_dl_allocate_tls in the file glibc-2.34567-NPTL-helgrind.supp. Since glibc version 2.23, memcpy is implemented by __mempcpy_inline. This causes that call to memcpy from pthread_create is no longer recognized by the suppression. In test helgrind/tests/tc22_exit_w_lock, pthread_create is called twice, and second call reports error, which causes failing of the test. This patch adds suppression for glibc 2.23 and greater. Patch by Tamara Vlahovic. Related issue #375806. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16219 --- diff --git a/NEWS b/NEWS index 4d42eac0a7..10b723fae0 100644 --- a/NEWS +++ b/NEWS @@ -113,6 +113,7 @@ where XXXXXX is the bug number as listed below. 375514 valgrind_get_tls_addr() does not work in case of static TLS 375772 +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_(find_rx_mapping)() +375806 Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24 Release 3.12.0 (20 October 2016) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/glibc-2.34567-NPTL-helgrind.supp b/glibc-2.34567-NPTL-helgrind.supp index ed105b8db6..7ebd2c4b4e 100644 --- a/glibc-2.34567-NPTL-helgrind.supp +++ b/glibc-2.34567-NPTL-helgrind.supp @@ -267,6 +267,18 @@ fun:pthread_create@* } +{ + helgrind---_dl_allocate_tls2 + Helgrind:Race + fun:memcpy + fun:__mempcpy_inline + fun:_dl_allocate_tls_init + ... + fun:pthread_create@@GLIBC_2.2* + fun:pthread_create_WRK + fun:pthread_create@* +} + #################################################### # To do with GNU libgomp #