summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2021-10-19 17:33:25 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-23 17:41:45 +0100
commitda8f9c5e1ebe655a1a8e9935dd6560121bca2e74 (patch)
tree3d95acb07969e7ce0230fef7fcedfc746d1b98b8 /meta/recipes-devtools
parente6fc7d2825d6c26f5dc65e38f3313cd9b3556238 (diff)
downloadopenembedded-core-da8f9c5e1ebe655a1a8e9935dd6560121bca2e74.tar.gz
valgrind: update 3.17.0 -> 3.18.1
Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch72
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch65
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch20
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch47
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch12
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch34
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch171
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch43
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch1422
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.18.1.bb (renamed from meta/recipes-devtools/valgrind/valgrind_3.17.0.bb)9
10 files changed, 33 insertions, 1862 deletions
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch b/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch
deleted file mode 100644
index 2a73f7e81f..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/0001-Add-missing-musl.supp.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 61bc8664f93cd980831c9da4a3e8a385b089a0ab Mon Sep 17 00:00:00 2001
-From: Yi Fan Yu <yifan.yu@windriver.com>
-Date: Tue, 23 Mar 2021 09:32:22 -0700
-Subject: [PATCH] Add missing musl.supp
-
-3.17 did not ship musl.supp in the tarball.
-
-This is a workaround until next release.
-
-Upstream-Status: Backport [dde556d51f8226a6de564a00bf82536bb7042c54]
-
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
----
- musl.supp | 46 ++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 46 insertions(+)
- create mode 100644 musl.supp
-
-diff --git a/musl.supp b/musl.supp
-new file mode 100644
-index 000000000..864172a24
---- /dev/null
-+++ b/musl.supp
-@@ -0,0 +1,46 @@
-+# Suppressions for musl libc
-+# See: https://www.openwall.com/lists/musl/2017/06/15/4
-+
-+{
-+ musl-dynlink-false-positive1
-+ Memcheck:Leak
-+ fun:calloc
-+ fun:load_direct_deps
-+ fun:load_deps
-+ fun:load_deps
-+ fun:__dls3
-+ fun:__dls2b
-+ fun:__dls2
-+}
-+
-+{
-+ musl-dynlink-false-positive2
-+ Memcheck:Leak
-+ fun:calloc
-+ fun:load_direct_deps
-+ fun:load_deps
-+ fun:load_deps
-+ fun:__dls3
-+ fun:__dls2
-+}
-+
-+{
-+ musl-dynlink-false-positive3
-+ Memcheck:Leak
-+ fun:calloc
-+ fun:load_library
-+ fun:load_preload
-+ fun:__dls3
-+ fun:__dls2b
-+ fun:__dls2
-+}
-+
-+{
-+ musl-dynlink-false-positive4
-+ Memcheck:Leak
-+ fun:calloc
-+ fun:load_library
-+ fun:load_preload
-+ fun:__dls3
-+ fun:__dls2
-+}
---
-2.17.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch b/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch
deleted file mode 100644
index 371c1701d0..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 4c8c4a9c3a92300e3e6500e5a278ca37514a1fdb Mon Sep 17 00:00:00 2001
-From: Yi Fan Yu <yifan.yu@windriver.com>
-Date: Thu, 1 Apr 2021 15:31:47 -0400
-Subject: [PATCH] drd/tests/swapcontext: Add SIGALRM handler to avoid
- stacktrace
-
-During testing for oe-core build on QEMU,
-SIGALRM can trigger during nanosleep.
-This results a different stderr output than expected.
-
-```
-==277== Process terminating with default action of signal 14 (SIGALRM)
-==277== at 0x36C74C3943: clock_nanosleep@@GLIBC_2.17 (clock_nanosleep.c:43)
-==277== by 0x36C74C8726: nanosleep (nanosleep.c:25)
-```
-
-This stacktrace printing will not occur
-if we add a handler that simply exits.
-
-https://bugs.kde.org/show_bug.cgi?id=435160
-
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
----
- drd/tests/swapcontext.c | 5 +++++
- drd/tests/swapcontext.stderr.exp | 4 ----
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drd/tests/swapcontext.c b/drd/tests/swapcontext.c
-index 622c70bc5..2cb969a5e 100644
---- a/drd/tests/swapcontext.c
-+++ b/drd/tests/swapcontext.c
-@@ -25,6 +25,10 @@ typedef struct thread_local {
- size_t nrsw;
- } thread_local_t;
-
-+static void sig_alrm_handler(int signo) {
-+ _exit(1);
-+}
-+
- static void f(void *data, int n)
- {
- enum { NR_SWITCHES = 200000 };
-@@ -76,6 +80,7 @@ int main(int argc, char *argv[])
- pthread_attr_t attr;
- int i, res;
-
-+ signal(SIGALRM, sig_alrm_handler);
- memset(tlocal, 0, sizeof(tlocal));
-
- pthread_attr_init(&attr);
-diff --git a/drd/tests/swapcontext.stderr.exp b/drd/tests/swapcontext.stderr.exp
-index fcb5d5ed4..d18786f80 100644
---- a/drd/tests/swapcontext.stderr.exp
-+++ b/drd/tests/swapcontext.stderr.exp
-@@ -1,7 +1,3 @@
-
-
--Process terminating with default action of signal 14 (SIGALRM)
-- at 0x........: swapcontext (in /...libc...)
-- by 0x........: f (swapcontext.c:?)
--
- ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
---
-2.17.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch b/meta/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch
index 185b8f9e60..8f771ed0bd 100644
--- a/meta/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch
+++ b/meta/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch
@@ -1,4 +1,4 @@
-From de692e359801a1f0488c76267e4f904dd2efe754 Mon Sep 17 00:00:00 2001
+From 568224da7e647d00abf14a7160997689d9745c89 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 10 Jun 2017 00:39:07 -0700
Subject: [PATCH] str_tester.c: Limit rawmemchr() test to glibc
@@ -6,34 +6,30 @@ Subject: [PATCH] str_tester.c: Limit rawmemchr() test to glibc
rawmemchr() is a GNU extention therefore mark it so
Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Pending
-
+---
memcheck/tests/str_tester.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/memcheck/tests/str_tester.c b/memcheck/tests/str_tester.c
-index 9f7790a..47e4b4a 100644
+index 7c2ff1e..8b82ced 100644
--- a/memcheck/tests/str_tester.c
+++ b/memcheck/tests/str_tester.c
@@ -504,7 +504,7 @@ test_strchrnul (void)
#endif
// DDD: better done by testing for the function.
--#if !defined(__APPLE__) && !defined(__sun)
-+#if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__)
+-#if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__)
++#if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__) && defined(__GLIBC__)
static void
test_rawmemchr (void)
{
-@@ -1442,7 +1442,7 @@ main (void)
+@@ -1451,7 +1451,7 @@ main (void)
test_strchrnul ();
# endif
--# if !defined(__APPLE__) && !defined(__sun)
-+# if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__)
+-# if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__)
++# if !defined(__APPLE__) && !defined(__sun) && !defined(__FreeBSD__) && defined(__GLIBC__)
/* rawmemchr. */
test_rawmemchr ();
# endif
---
-2.13.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch b/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
index 4570f63995..06b19b07c4 100644
--- a/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
+++ b/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
@@ -1,4 +1,4 @@
-From 8f916dcb395fe5a2429f2867ba4daf8ef3af073a Mon Sep 17 00:00:00 2001
+From 59e3190e9121c5439d54298b083b44c5c3794a7f Mon Sep 17 00:00:00 2001
From: Randy MacLeod <Randy.MacLeod@windriver.com>
Date: Tue, 16 Oct 2018 21:01:04 -0400
Subject: [PATCH] Fix out of tree builds.
@@ -16,15 +16,16 @@ Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+
---
- configure.ac | 66 ++++++++++++++++++++++++++--------------------------
- 1 file changed, 33 insertions(+), 33 deletions(-)
+ configure.ac | 62 ++++++++++++++++++++++++++--------------------------
+ 1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 524230d..54861c5 100755
+index b851798..d360896 100755
--- a/configure.ac
+++ b/configure.ac
-@@ -396,50 +396,50 @@ case "${host_os}" in
+@@ -447,50 +447,50 @@ case "${host_os}" in
9.*)
AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version])
@@ -91,7 +92,7 @@ index 524230d..54861c5 100755
;;
17.*)
AC_MSG_RESULT([Darwin 17.x (${kernel}) / macOS 10.13 High Sierra])
-@@ -464,7 +464,7 @@ case "${host_os}" in
+@@ -515,7 +515,7 @@ case "${host_os}" in
DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}"
;;
*)
@@ -100,7 +101,7 @@ index 524230d..54861c5 100755
;;
esac
;;
-@@ -472,7 +472,7 @@ case "${host_os}" in
+@@ -523,7 +523,7 @@ case "${host_os}" in
solaris2.12*)
AC_MSG_RESULT([ok (${host_os})])
VGCONF_OS="solaris"
@@ -109,7 +110,7 @@ index 524230d..54861c5 100755
;;
*)
-@@ -1095,29 +1095,29 @@ AC_MSG_CHECKING([the glibc version])
+@@ -1237,15 +1237,15 @@ AC_MSG_CHECKING([the glibc version])
case "${GLIBC_VERSION}" in
2.2)
AC_MSG_RESULT(${GLIBC_VERSION} family)
@@ -123,44 +124,37 @@ index 524230d..54861c5 100755
2.[[3-6]])
AC_MSG_RESULT(${GLIBC_VERSION} family)
- DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+- DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="$srcdir/glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
2.[[7-9]])
AC_MSG_RESULT(${GLIBC_VERSION} family)
- DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
- ;;
- 2.10|2.11)
- AC_MSG_RESULT(${GLIBC_VERSION} family)
+@@ -1258,8 +1258,8 @@ case "${GLIBC_VERSION}" in
AC_DEFINE([GLIBC_MANDATORY_STRLEN_REDIRECT], 1,
[Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10)])
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+- DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
2.*)
AC_MSG_RESULT(${GLIBC_VERSION} family)
-@@ -1126,8 +1126,8 @@ case "${GLIBC_VERSION}" in
+@@ -1268,8 +1268,8 @@ case "${GLIBC_VERSION}" in
AC_DEFINE([GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT], 1,
[Define to 1 if index() and strlen() have been optimized heavily (x86 glibc >= 2.12)])
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+- DEFAULT_SUPP="glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
darwin)
AC_MSG_RESULT(Darwin)
-@@ -1137,7 +1137,7 @@ case "${GLIBC_VERSION}" in
+@@ -1284,7 +1284,7 @@ case "${GLIBC_VERSION}" in
bionic)
AC_MSG_RESULT(Bionic)
AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic])
@@ -169,7 +163,7 @@ index 524230d..54861c5 100755
;;
solaris)
AC_MSG_RESULT(Solaris)
-@@ -1164,8 +1164,8 @@ if test "$VGCONF_OS" != "solaris"; then
+@@ -1313,8 +1313,8 @@ if test "$VGCONF_OS" != "solaris"; then
# attempt to detect whether such libraries are installed on the
# build machine (or even if any X facilities are present); just
# add the suppressions antidisirregardless.
@@ -180,6 +174,3 @@ index 524230d..54861c5 100755
fi
---
-2.17.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch b/meta/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch
index 6176640e42..02241781d9 100644
--- a/meta/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch
+++ b/meta/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch
@@ -1,30 +1,28 @@
-From b4b9f072c22f96844e02cb9d68f7ff2408680817 Mon Sep 17 00:00:00 2001
+From ace5fe19b3f13039d5d6bd5d99d54c20ea79e09c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 10 Jun 2017 01:07:59 -0700
-Subject: [PATCH 5/6] tc20_verifywrap.c: Fake __GLIBC_PREREQ with musl
+Subject: [PATCH] tc20_verifywrap.c: Fake __GLIBC_PREREQ with musl
similar to sun
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
helgrind/tests/tc20_verifywrap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/helgrind/tests/tc20_verifywrap.c b/helgrind/tests/tc20_verifywrap.c
-index c110000..a311a49 100644
+index ae97bde..db2eb70 100644
--- a/helgrind/tests/tc20_verifywrap.c
+++ b/helgrind/tests/tc20_verifywrap.c
@@ -20,7 +20,7 @@
- #if !defined(__APPLE__)
+ #if !defined(__APPLE__) && !defined(__FreeBSD__)
-#if defined(__sun__)
+#if defined(__sun__) || (defined(__linux__) && !defined(__GLIBC__))
/* Fake __GLIBC_PREREQ on Solaris. Pretend glibc >= 2.4. */
# define __GLIBC_PREREQ
#else
---
-2.13.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch b/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch
deleted file mode 100644
index 9a5f6a3f51..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 200b6a5a0ea3e1e154663b0fc575bfe2becf177d Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Wed, 21 Jul 2021 17:55:40 +0200
-Subject: [PATCH] m_debuginfo/debuginfo.c VG_(get_fnname_kind) _start is below
- main
-
-With glibc 2.34 we might see the _start symbol as the frame that
-called main instead of directly after __libc_start_main or
-generic_start_main.
-
-Fixes memcheck/tests/badjump[2], memcheck/tests/origin4-many,
-helgrind/tests/tc04_free_lock, helgrind/tests/tc09_bad_unlock
-and helgrind/tests/tc20_verifywrap.
-
-Upstream-Status: Backport
----
- coregrind/m_debuginfo/debuginfo.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/coregrind/m_debuginfo/debuginfo.c b/coregrind/m_debuginfo/debuginfo.c
-index bc2578b377..e2218f2668 100644
---- a/coregrind/m_debuginfo/debuginfo.c
-+++ b/coregrind/m_debuginfo/debuginfo.c
-@@ -2289,6 +2289,7 @@ Vg_FnNameKind VG_(get_fnname_kind) ( const HChar* name )
- VG_STREQN(18, "__libc_start_main.", name) || // gcc optimization
- VG_STREQ("generic_start_main", name) || // Yellow Dog doggedness
- VG_STREQN(19, "generic_start_main.", name) || // gcc optimization
-+ VG_STREQ("_start", name) ||
- # elif defined(VGO_darwin)
- // See readmacho.c for an explanation of this.
- VG_STREQ("start_according_to_valgrind", name) || // Darwin, darling
---
-2.27.0
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch b/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch
deleted file mode 100644
index 451a459ea7..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From 52ed51fc35f8a6148c2940eb46932b02dd3b9b23 Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Wed, 21 Jul 2021 19:53:13 +0200
-Subject: [PATCH] Generate a ENOSYS (sys_ni_syscall) for clone3 on all linux
- arches
-
-glibc 2.34 will try to use clone3 first before falling back to
-the clone syscall. So implement clone3 as sys_ni_syscall which
-simply return ENOSYS without producing a warning.
-
-https://bugs.kde.org/show_bug.cgi?id=439590
-
-Upstream-Status: Backport
----
- coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-arm-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-arm64-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-mips32-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-mips64-linux.c | 1 +
- coregrind/m_syswrap/syswrap-nanomips-linux.c | 1 +
- coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-ppc64-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-s390x-linux.c | 2 ++
- coregrind/m_syswrap/syswrap-x86-linux.c | 2 ++
- include/vki/vki-scnums-shared-linux.h | 2 ++
- 11 files changed, 20 insertions(+)
-
-diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
-index 45e1f3d1bb..3b2dcb8e30 100644
---- a/coregrind/m_syswrap/syswrap-amd64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
-@@ -874,6 +874,8 @@ static SyscallTableEntry syscall_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
-index 428cb7c6fc..7f41b07491 100644
---- a/coregrind/m_syswrap/syswrap-arm-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm-linux.c
-@@ -1051,6 +1051,8 @@ static SyscallTableEntry syscall_main_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
-index 024ece27f5..0d717f44be 100644
---- a/coregrind/m_syswrap/syswrap-arm64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
-@@ -830,6 +830,8 @@ static SyscallTableEntry syscall_main_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c
-index 62b085ea21..b62129111b 100644
---- a/coregrind/m_syswrap/syswrap-mips32-linux.c
-+++ b/coregrind/m_syswrap/syswrap-mips32-linux.c
-@@ -1136,6 +1136,8 @@ static SyscallTableEntry syscall_main_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_ (__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
-index b73c03da16..94f38366f0 100644
---- a/coregrind/m_syswrap/syswrap-mips64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
-@@ -815,6 +815,7 @@ static SyscallTableEntry syscall_main_table[] = {
- LINXY (__NR_io_uring_setup, sys_io_uring_setup),
- LINXY (__NR_io_uring_enter, sys_io_uring_enter),
- LINXY (__NR_io_uring_register, sys_io_uring_register),
-+ GENX_ (__NR_clone3, sys_ni_syscall),
- LINX_ (__NR_faccessat2, sys_faccessat2),
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c
-index 14127b181a..102c155507 100644
---- a/coregrind/m_syswrap/syswrap-nanomips-linux.c
-+++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c
-@@ -824,6 +824,7 @@ static SyscallTableEntry syscall_main_table[] = {
- LINXY (__NR_io_uring_setup, sys_io_uring_setup),
- LINXY (__NR_io_uring_enter, sys_io_uring_enter),
- LINXY (__NR_io_uring_register, sys_io_uring_register),
-+ GENX_ (__NR_clone3, sys_ni_syscall),
- LINX_ (__NR_faccessat2, sys_faccessat2),
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
-index aad14f8ba4..1e2efc6777 100644
---- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
-+++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
-@@ -1054,6 +1054,8 @@ static SyscallTableEntry syscall_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
-index c0e3f55491..76610e1423 100644
---- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
-+++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
-@@ -1023,6 +1023,8 @@ static SyscallTableEntry syscall_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
-index af6c4eb210..5283c19fe4 100644
---- a/coregrind/m_syswrap/syswrap-s390x-linux.c
-+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
-@@ -864,6 +864,8 @@ static SyscallTableEntry syscall_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
-index 67d866497d..418c769750 100644
---- a/coregrind/m_syswrap/syswrap-x86-linux.c
-+++ b/coregrind/m_syswrap/syswrap-x86-linux.c
-@@ -1645,6 +1645,8 @@ static SyscallTableEntry syscall_table[] = {
- LINXY(__NR_io_uring_enter, sys_io_uring_enter), // 426
- LINXY(__NR_io_uring_register, sys_io_uring_register),// 427
-
-+ GENX_(__NR_clone3, sys_ni_syscall), // 435
-+
- LINX_(__NR_faccessat2, sys_faccessat2), // 439
- };
-
-diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h
-index c8bc31b4b3..6c70c9981d 100644
---- a/include/vki/vki-scnums-shared-linux.h
-+++ b/include/vki/vki-scnums-shared-linux.h
-@@ -39,6 +39,8 @@
- #define __NR_fsmount 432
- #define __NR_fspick 433
-
-+#define __NR_clone3 435
-+
- #define __NR_faccessat2 439
-
- #endif
---
-2.27.0
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch b/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch
deleted file mode 100644
index fce66b96ae..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6da22a4d246519cd1a638cfc7eff00cdd74413c4 Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Fri, 16 Jul 2021 21:37:21 +0200
-Subject: [PATCH] gdbserver_tests: update filters for newer glibc/gdb
-
-With newer glibc/gdb we might see a __select call without anything
-following on the line. Also when gdb cannot find a file it might
-now print "Inappropriate ioctl for device" instead of the message
-"No such file or directory"
-
-Upstream-Status: Backport
----
- gdbserver_tests/filter_gdb | 1 +
- gdbserver_tests/filter_vgdb | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/gdbserver_tests/filter_gdb b/gdbserver_tests/filter_gdb
-index 3bcd26d86c..4a5b5d7a5b 100755
---- a/gdbserver_tests/filter_gdb
-+++ b/gdbserver_tests/filter_gdb
-@@ -111,6 +111,7 @@ s/\(0x........\) in ?? ()$/\1 in syscall .../
- # If select.c sources are present, we can also get a line containing:
- # return SYSCALL_CANCEL....
- s/in __select .*/in syscall .../
-+s/in __select$/in syscall .../
- /exceptfds/d
- /sysv\/linux\/select\.c/d
- /return SYSCALL_CANCEL /d
-diff --git a/gdbserver_tests/filter_vgdb b/gdbserver_tests/filter_vgdb
-index f8028a39ad..679ca4b31c 100755
---- a/gdbserver_tests/filter_vgdb
-+++ b/gdbserver_tests/filter_vgdb
-@@ -18,6 +18,7 @@ sed -e '/relaying data between gdb and process/d' \
-
- # filter some debuginfo problems with ld.so and SLES11
- sed -e '/^1 rtld.c: No such file or directory\./d' |
-+sed -e '/rtld.c: Inappropriate ioctl for device\./d' |
-
- # and filter out any remaining empty lines
- sed -e '/^$/d'
---
-2.27.0
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch b/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch
deleted file mode 100644
index ece88406c6..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch
+++ /dev/null
@@ -1,1422 +0,0 @@
-From a1364805fc74b5690f763033c0c9b43f27613572 Mon Sep 17 00:00:00 2001
-From: Mark Wielaard <mark@klomp.org>
-Date: Fri, 16 Jul 2021 15:47:08 -0400
-Subject: [PATCH] Update helgrind and drd suppression libc and libpthread paths
- in glibc 2.34
-
-glibc 2.34 moved all pthread functions into the main libc library.
-And it changed the (in memory) path of the main libc library to
-libc.so.6 (before it was libc-2.xx.so).
-
-This breaks various standard suppressions for helgrind and drd.
-Fix this by doing a configure check for whether we are using glibc
-2.34 by checking whether pthread_create is in libc instead of in
-libpthread. If we are using glibc then define GLIBC_LIBC_PATH and
-GLIBC_LIBPTHREAD_PATH variables that point to the (regexp) path
-of the library that contains all libc functions and pthread functions
-(which will be the same path for glibc 2.34+).
-
-Rename glibc-2.34567-NPTL-helgrind.supp to glibc-2.X-helgrind.supp.in
-and glibc-2.X-drd.supp to glibc-2.X-drd.supp.in and replace the
-GLIBC_LIBC_PATH and GLIBC_LIBPTHREAD_PATH at configure time.
-
-The same could be done for the glibc-2.X.supp.in file, but hasn't
-yet because it looks like most suppressions in that file are obsolete.
-
-Upstream-Status: Backport
----
- Makefile.am | 2 +-
- configure.ac | 37 +++++++++++++++++--
- glibc-2.X-drd.supp => glibc-2.X-drd.supp.in | 6 ++-
- ...elgrind.supp => glibc-2.X-helgrind.supp.in | 16 ++++----
- 4 files changed, 47 insertions(+), 14 deletions(-)
- rename glibc-2.X-drd.supp => glibc-2.X-drd.supp.in (97%)
- rename glibc-2.34567-NPTL-helgrind.supp => glibc-2.X-helgrind.supp.in (95%)
-
-Index: valgrind-3.17.0/Makefile.am
-===================================================================
---- valgrind-3.17.0.orig/Makefile.am
-+++ valgrind-3.17.0/Makefile.am
-@@ -41,7 +41,7 @@ SUPP_FILES = \
- glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
- glibc-2.6.supp glibc-2.7.supp glibc-2.X.supp.in \
- xfree-3.supp xfree-4.supp \
-- glibc-2.34567-NPTL-helgrind.supp \
-+ glibc-2.X-helgrind.supp \
- glibc-2.2-LinuxThreads-helgrind.supp \
- glibc-2.X-drd.supp \
- darwin9.supp darwin9-drd.supp \
-Index: valgrind-3.17.0/configure.ac
-===================================================================
---- valgrind-3.17.0.orig/configure.ac
-+++ valgrind-3.17.0/configure.ac
-@@ -1090,6 +1090,31 @@ if test x$GLIBC_VERSION = x; then
- fi
- fi
-
-+# If this is glibc then figure out the generic (in file) libc.so and
-+# libpthread.so file paths to use in suppressions. Before 2.34 libpthread
-+# was a separate library, afterwards it was merged into libc.so and
-+# the library is called libc.so.6 (before it was libc-2.[0-9]+.so).
-+# Use this fact to set GLIBC_LIBC_PATH and GLIBC_LIBPTHREAD_PATH.
-+case ${GLIBC_VERSION} in
-+2*)
-+ AC_MSG_CHECKING([whether pthread_create needs libpthread])
-+ AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_create])],
-+ [
-+ AC_MSG_RESULT([no])
-+ GLIBC_LIBC_PATH="*/lib*/libc.so.6"
-+ GLIBC_LIBPTHREAD_PATH="$GLIBC_LIBC_PATH"
-+ ], [
-+ AC_MSG_RESULT([yes])
-+ GLIBC_LIBC_PATH="*/lib*/libc-2.*so*"
-+ GLIBC_LIBPTHREAD_PATH="*/lib*/libpthread-2.*so*"
-+ ])
-+ ;;
-+*)
-+ AC_MSG_CHECKING([not glibc...])
-+ AC_MSG_RESULT([${GLIBC_VERSION}])
-+ ;;
-+esac
-+
- AC_MSG_CHECKING([the glibc version])
-
- case "${GLIBC_VERSION}" in
-@@ -1102,13 +1127,13 @@ case "${GLIBC_VERSION}" in
- 2.[[3-6]])
- AC_MSG_RESULT(${GLIBC_VERSION} family)
- DEFAULT_SUPP="$srcdir/glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
- ;;
- 2.[[7-9]])
- AC_MSG_RESULT(${GLIBC_VERSION} family)
- DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
- ;;
- 2.10|2.11)
-@@ -1116,7 +1141,7 @@ case "${GLIBC_VERSION}" in
- AC_DEFINE([GLIBC_MANDATORY_STRLEN_REDIRECT], 1,
- [Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10)])
- DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
- ;;
- 2.*)
-@@ -1126,7 +1151,7 @@ case "${GLIBC_VERSION}" in
- AC_DEFINE([GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT], 1,
- [Define to 1 if index() and strlen() have been optimized heavily (x86 glibc >= 2.12)])
- DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-- DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
- ;;
- darwin)
-@@ -1157,6 +1182,8 @@ case "${GLIBC_VERSION}" in
- esac
-
- AC_SUBST(GLIBC_VERSION)
-+AC_SUBST(GLIBC_LIBC_PATH)
-+AC_SUBST(GLIBC_LIBPTHREAD_PATH)
-
-
- if test "$VGCONF_OS" != "solaris"; then
-@@ -4910,6 +4937,8 @@ AC_CONFIG_FILES([
- valgrind.spec
- valgrind.pc
- glibc-2.X.supp
-+ glibc-2.X-helgrind.supp
-+ glibc-2.X-drd.supp
- docs/Makefile
- tests/Makefile
- tests/vg_regtest
-Index: valgrind-3.17.0/glibc-2.X-drd.supp
-===================================================================
---- valgrind-3.17.0.orig/glibc-2.X-drd.supp
-+++ /dev/null
-@@ -1,330 +0,0 @@
--#
--# Suppression patterns for ld, the dynamic loader.
--#
--
--# Suppress all data races triggered by ld.
--{
-- drd-ld
-- drd:ConflictingAccess
-- obj:*/lib*/ld-*.so
--}
--
--#
--# Suppression patterns for libc.
--#
--
--# Suppress all data races where the topmost frame is inside libc.so. Although
--# this could hide some real data races, unfortunately this is the only way to
--# not report any false positives on stdio functions. The glibc functions
--# manipulating FILE objects use locking primitives that cannot be intercepted
--# easily. See also the definitions of _IO_lock_lock() etc. in the file
--# nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
--{
-- drd-libc-stdio
-- drd:ConflictingAccess
-- obj:*/lib*/libc-*
--}
--{
-- drd-libc-thread-cancellation-test
-- drd:ConflictingAccess
-- fun:write
--}
--{
-- drd-libc-random
-- drd:ConflictingAccess
-- fun:random_r
-- fun:random
--}
--
--#
--# Suppression patterns for libstdc++, the implementation of the standard C++
--# library included with the gcc compiler.
--#
--# Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
--# and their predecessors) contain an implementation of the std::string class
--# that triggers conflicting memory accesses. See also
--# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
--#
--
--# {
--# drd-libstdc++-std::string::string()
--# drd:ConflictingAccess
--# fun:_ZNSsC1ERKSs
--# }
--
--{
-- drd-libstdc++-cxa_guard_release
-- drd:CondErr
-- fun:pthread_cond_broadcast@*
-- fun:__cxa_guard_release
--}
--{
-- drd-libstdc++-std::__ostream_insert()
-- drd:ConflictingAccess
-- fun:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
-- fun:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
--}
--{
-- drd-libstdc++-std::ostream::_M_insert<long>()
-- drd:ConflictingAccess
-- ...
-- fun:_ZNSo9_M_insertIlEERSoT_
--}
--
--
--#
--# Suppression patterns for libpthread.
--#
--
--{
-- drd-libpthread-pthread_create
-- drd:ConflictingAccess
-- ...
-- fun:pthread_create*
--}
--{
-- drd-libpthread-pthread_join
-- drd:ConflictingAccess
-- fun:pthread_join
-- fun:pthread_join
--}
--{
-- drd-libpthread-__deallocate_stack
-- drd:ConflictingAccess
-- ...
-- fun:__deallocate_stack
--}
--{
-- drd-libpthread-__free_stacks
-- drd:ConflictingAccess
-- fun:__free_stacks
--}
--{
-- drd-libpthread-__free_tcb
-- drd:ConflictingAccess
-- ...
-- fun:__free_tcb
--}
--{
-- drd-libpthread-__nptl_deallocate_tsd
-- drd:ConflictingAccess
-- fun:__nptl_deallocate_tsd
--}
--{
-- drd-libpthread-pthread_detach
-- drd:ConflictingAccess
-- fun:pthread_detach
-- fun:pthread_detach
--}
--{
-- drd-libpthread-pthread_once
-- drd:ConflictingAccess
-- fun:pthread_once
--}
--{
-- drd-libpthread-pthread_cancel_init
-- drd:ConflictingAccess
-- fun:pthread_cancel_init
--}
--{
-- drd-libpthread-pthread_cancel
-- drd:ConflictingAccess
-- fun:pthread_cancel
-- fun:pthread_cancel_intercept
--}
--{
-- drd-libpthread-_Unwind_ForcedUnwind
-- drd:ConflictingAccess
-- ...
-- fun:_Unwind_ForcedUnwind
--}
--{
-- drd-libpthread-_Unwind_GetCFA
-- drd:ConflictingAccess
-- fun:_Unwind_GetCFA
--}
--{
-- drd-libpthread-_Unwind_Resume
-- drd:ConflictingAccess
-- ...
-- fun:_Unwind_Resume
--}
--{
-- drd-libpthread-?
-- drd:ConflictingAccess
-- obj:*/lib/libgcc_s.so.1
--}
--{
-- drd-libpthread-nanosleep
-- drd:ConflictingAccess
-- fun:nanosleep
--}
--
--#
--# Suppression patterns for libgomp.
--#
--
--# Unfortunately many statements in libgomp trigger conflicting accesses. It is
--# not clear to me which of these are safe and which ones not. See also
--# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
--{
-- drd-libgomp
-- drd:ConflictingAccess
-- obj:/usr/lib*/libgomp.so*
--}
--
--#
--# Suppression patterns for libX11.
--#
--
--{
-- drd-libX11-XCreateFontSet
-- drd:CondErr
-- fun:pthread_cond_init*
-- fun:_XReply
-- fun:XListFontsWithInfo
-- obj:/usr/lib*/libX11.so*
-- fun:XCreateOC
-- fun:XCreateFontSet
--}
--
--#
--# Suppression patterns for libxcb.
--#
--
--{
-- drd-libxcb-xcb_wait_for_reply
-- drd:CondErr
-- ...
-- fun:pthread_cond_destroy*
-- fun:xcb_wait_for_reply
--}
--
--#
--# Suppression patterns for libglib.
--#
--
--{
-- drd-libglib-access-g_threads_got_initialized
-- drd:ConflictingAccess
-- ...
-- fun:g_slice_alloc
-- fun:g_ptr_array_sized_new
--}
--{
-- drd-libglib-access-g_threads_got_initialized
-- drd:ConflictingAccess
-- ...
-- fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
-- fun:_ZN20QEventDispatcherGlibC1EP7QObject
-- obj:/usr/lib*/libQtCore.so.4.*
-- obj:/usr/lib*/libQtCore.so.4.*
--}
--{
-- drd-libglib-access-g_mem_initialized
-- drd:ConflictingAccess
-- fun:g_malloc0
--}
--{
-- drd-libglib-g_private_get_posix_impl
-- drd:ConflictingAccess
-- fun:g_private_get_posix_impl
--}
--{
-- drd-libglib-g_private_set_posix_impl
-- drd:ConflictingAccess
-- fun:g_private_set_posix_impl
--}
--{
-- drd-libglib-g_get_language_names
-- drd:ConflictingAccess
-- fun:g_slice_free_chain_with_offset
--}
--{
-- drd-libglib-g_main_context_new
-- drd:ConflictingAccess
-- fun:fcntl
-- obj:/usr/lib*/libglib-*.so*
-- fun:g_main_context_new
--}
--
--#
--# Suppression patterns for libQtCore.
--#
--
--{
-- drd-libQtCore-deref-that-calls-QThreadData-destructor
-- drd:ConflictingAccess
-- fun:_ZN11QThreadDataD1Ev
-- obj:/usr/lib*/libQtCore.so.4.*
--}
--{
-- drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
-- drd:ConflictingAccess
-- obj:/usr/lib*/libQtCore.so.4.*
-- fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
-- fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
--}
--{
-- drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
-- drd:ConflictingAccess
-- fun:_ZN14QReadWriteLock12lockForWriteEv
-- fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
-- fun:_ZN7QObjectD2Ev
--}
--{
-- drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
-- drd:ConflictingAccess
-- fun:_ZN14QReadWriteLock12lockForWriteEv
-- fun:_ZN12QWriteLocker6relockEv
-- fun:_ZN12QWriteLockerC1EP14QReadWriteLock
-- fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
-- fun:_ZN7QObjectD2Ev
-- fun:_ZN24QAbstractEventDispatcherD2Ev
-- fun:_ZN20QEventDispatcherGlibD0Ev
--}
--{
-- drd-libQtCore-QMutexPool::get(void const*)
-- drd:ConflictingAccess
-- fun:_ZN10QMutexPool3getEPKv
--}
--{
-- drd-libQtCore-qt_gettime_is_monotonic()
-- drd:ConflictingAccess
-- fun:_Z23qt_gettime_is_monotonicv
--}
--
--#
--# Suppression patterns for libboost.
--#
--
--# Suppress the races on boost::once_flag::epoch and on
--# boost::detail::this_thread_epoch. See also the source file
--# boost/thread/pthread/once.hpp in the Boost source tree
--# (https://svn.boost.org/trac/boost/browser/trunk/boost/thread/pthread/once.hpp).
--{
-- drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
-- drd:ConflictingAccess
-- ...
-- fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
--}
--{
-- drd-libboost-boost::detail::get_once_per_thread_epoch()
-- drd:ConflictingAccess
-- fun:_ZN5boost6detail25get_once_per_thread_epochEv
--}
--# Suppress the race reports on boost::detail::current_thread_tls_key. See also
--# https://svn.boost.org/trac/boost/ticket/3526 for more information about why
--# the access pattern of current_thread_tls_key is safe.
--{
-- drd-libboost-boost::detail::get_current_thread_data()
-- drd:ConflictingAccess
-- ...
-- fun:_ZN5boost6detail23get_current_thread_dataEv
--}
--{
-- drd-libboost-boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
-- drd:ConflictingAccess
-- ...
-- fun:_ZN5boost6detail23set_current_thread_dataEPNS0_16thread_data_baseE
--}
-Index: valgrind-3.17.0/glibc-2.X-drd.supp.in
-===================================================================
---- /dev/null
-+++ valgrind-3.17.0/glibc-2.X-drd.supp.in
-@@ -0,0 +1,332 @@
-+# IMPORTANT: DO NOT EDIT glibc-2.X-drd.supp, as it is as a generated
-+# file. Instead edit glibc-2.X-drd.supp.in.
-+#
-+# Suppression patterns for ld, the dynamic loader.
-+#
-+
-+# Suppress all data races triggered by ld.
-+{
-+ drd-ld
-+ drd:ConflictingAccess
-+ obj:*/lib*/ld*.so*
-+}
-+
-+#
-+# Suppression patterns for libc.
-+#
-+
-+# Suppress all data races where the topmost frame is inside libc.so. Although
-+# this could hide some real data races, unfortunately this is the only way to
-+# not report any false positives on stdio functions. The glibc functions
-+# manipulating FILE objects use locking primitives that cannot be intercepted
-+# easily. See also the definitions of _IO_lock_lock() etc. in the file
-+# nptl/sysdeps/pthread/bits/stdio-lock.h in the glibc source tree.
-+{
-+ drd-libc-stdio
-+ drd:ConflictingAccess
-+ obj:@GLIBC_LIBC_PATH@
-+}
-+{
-+ drd-libc-thread-cancellation-test
-+ drd:ConflictingAccess
-+ fun:write
-+}
-+{
-+ drd-libc-random
-+ drd:ConflictingAccess
-+ fun:random_r
-+ fun:random
-+}
-+
-+#
-+# Suppression patterns for libstdc++, the implementation of the standard C++
-+# library included with the gcc compiler.
-+#
-+# Note: several versions of the libstdc++ library (4.2.2, 4.3.2, 4.4.0, 4.5.0
-+# and their predecessors) contain an implementation of the std::string class
-+# that triggers conflicting memory accesses. See also
-+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518
-+#
-+
-+# {
-+# drd-libstdc++-std::string::string()
-+# drd:ConflictingAccess
-+# fun:_ZNSsC1ERKSs
-+# }
-+
-+{
-+ drd-libstdc++-cxa_guard_release
-+ drd:CondErr
-+ fun:pthread_cond_broadcast@*
-+ fun:__cxa_guard_release
-+}
-+{
-+ drd-libstdc++-std::__ostream_insert()
-+ drd:ConflictingAccess
-+ fun:_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
-+ fun:_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
-+}
-+{
-+ drd-libstdc++-std::ostream::_M_insert<long>()
-+ drd:ConflictingAccess
-+ ...
-+ fun:_ZNSo9_M_insertIlEERSoT_
-+}
-+
-+
-+#
-+# Suppression patterns for libpthread.
-+#
-+
-+{
-+ drd-libpthread-pthread_create
-+ drd:ConflictingAccess
-+ ...
-+ fun:pthread_create*
-+}
-+{
-+ drd-libpthread-pthread_join
-+ drd:ConflictingAccess
-+ fun:pthread_join
-+ fun:pthread_join
-+}
-+{
-+ drd-libpthread-__deallocate_stack
-+ drd:ConflictingAccess
-+ ...
-+ fun:__deallocate_stack
-+}
-+{
-+ drd-libpthread-__free_stacks
-+ drd:ConflictingAccess
-+ fun:__free_stacks
-+}
-+{
-+ drd-libpthread-__free_tcb
-+ drd:ConflictingAccess
-+ ...
-+ fun:__free_tcb
-+}
-+{
-+ drd-libpthread-__nptl_deallocate_tsd
-+ drd:ConflictingAccess
-+ fun:__nptl_deallocate_tsd
-+}
-+{
-+ drd-libpthread-pthread_detach
-+ drd:ConflictingAccess
-+ fun:pthread_detach
-+ fun:pthread_detach
-+}
-+{
-+ drd-libpthread-pthread_once
-+ drd:ConflictingAccess
-+ fun:pthread_once
-+}
-+{
-+ drd-libpthread-pthread_cancel_init
-+ drd:ConflictingAccess
-+ fun:pthread_cancel_init
-+}
-+{
-+ drd-libpthread-pthread_cancel
-+ drd:ConflictingAccess
-+ fun:pthread_cancel
-+ fun:pthread_cancel_intercept
-+}
-+{
-+ drd-libpthread-_Unwind_ForcedUnwind
-+ drd:ConflictingAccess
-+ ...
-+ fun:_Unwind_ForcedUnwind
-+}
-+{
-+ drd-libpthread-_Unwind_GetCFA
-+ drd:ConflictingAccess
-+ fun:_Unwind_GetCFA
-+}
-+{
-+ drd-libpthread-_Unwind_Resume
-+ drd:ConflictingAccess
-+ ...
-+ fun:_Unwind_Resume
-+}
-+{
-+ drd-libpthread-?
-+ drd:ConflictingAccess
-+ obj:*/lib/libgcc_s.so.1
-+}
-+{
-+ drd-libpthread-nanosleep
-+ drd:ConflictingAccess
-+ fun:nanosleep
-+}
-+
-+#
-+# Suppression patterns for libgomp.
-+#
-+
-+# Unfortunately many statements in libgomp trigger conflicting accesses. It is
-+# not clear to me which of these are safe and which ones not. See also
-+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40362
-+{
-+ drd-libgomp
-+ drd:ConflictingAccess
-+ obj:/usr/lib*/libgomp.so*
-+}
-+
-+#
-+# Suppression patterns for libX11.
-+#
-+
-+{
-+ drd-libX11-XCreateFontSet
-+ drd:CondErr
-+ fun:pthread_cond_init*
-+ fun:_XReply
-+ fun:XListFontsWithInfo
-+ obj:/usr/lib*/libX11.so*
-+ fun:XCreateOC
-+ fun:XCreateFontSet
-+}
-+
-+#
-+# Suppression patterns for libxcb.
-+#
-+
-+{
-+ drd-libxcb-xcb_wait_for_reply
-+ drd:CondErr
-+ ...
-+ fun:pthread_cond_destroy*
-+ fun:xcb_wait_for_reply
-+}
-+
-+#
-+# Suppression patterns for libglib.
-+#
-+
-+{
-+ drd-libglib-access-g_threads_got_initialized
-+ drd:ConflictingAccess
-+ ...
-+ fun:g_slice_alloc
-+ fun:g_ptr_array_sized_new
-+}
-+{
-+ drd-libglib-access-g_threads_got_initialized
-+ drd:ConflictingAccess
-+ ...
-+ fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
-+ fun:_ZN20QEventDispatcherGlibC1EP7QObject
-+ obj:/usr/lib*/libQtCore.so.4.*
-+ obj:/usr/lib*/libQtCore.so.4.*
-+}
-+{
-+ drd-libglib-access-g_mem_initialized
-+ drd:ConflictingAccess
-+ fun:g_malloc0
-+}
-+{
-+ drd-libglib-g_private_get_posix_impl
-+ drd:ConflictingAccess
-+ fun:g_private_get_posix_impl
-+}
-+{
-+ drd-libglib-g_private_set_posix_impl
-+ drd:ConflictingAccess
-+ fun:g_private_set_posix_impl
-+}
-+{
-+ drd-libglib-g_get_language_names
-+ drd:ConflictingAccess
-+ fun:g_slice_free_chain_with_offset
-+}
-+{
-+ drd-libglib-g_main_context_new
-+ drd:ConflictingAccess
-+ fun:fcntl
-+ obj:/usr/lib*/libglib-*.so*
-+ fun:g_main_context_new
-+}
-+
-+#
-+# Suppression patterns for libQtCore.
-+#
-+
-+{
-+ drd-libQtCore-deref-that-calls-QThreadData-destructor
-+ drd:ConflictingAccess
-+ fun:_ZN11QThreadDataD1Ev
-+ obj:/usr/lib*/libQtCore.so.4.*
-+}
-+{
-+ drd-libQtCore-4.0/4.1-Q_GLOBAL_STATIC-connectionList
-+ drd:ConflictingAccess
-+ obj:/usr/lib*/libQtCore.so.4.*
-+ fun:_ZN11QMetaObject8activateEP7QObjectiiPPv
-+ fun:_ZN11QMetaObject8activateEP7QObjectPKS_iPPv
-+}
-+{
-+ drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
-+ drd:ConflictingAccess
-+ fun:_ZN14QReadWriteLock12lockForWriteEv
-+ fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
-+ fun:_ZN7QObjectD2Ev
-+}
-+{
-+ drd-libQtCore-QObjectPrivate::clearGuards(QObject*)
-+ drd:ConflictingAccess
-+ fun:_ZN14QReadWriteLock12lockForWriteEv
-+ fun:_ZN12QWriteLocker6relockEv
-+ fun:_ZN12QWriteLockerC1EP14QReadWriteLock
-+ fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
-+ fun:_ZN7QObjectD2Ev
-+ fun:_ZN24QAbstractEventDispatcherD2Ev
-+ fun:_ZN20QEventDispatcherGlibD0Ev
-+}
-+{
-+ drd-libQtCore-QMutexPool::get(void const*)
-+ drd:ConflictingAccess
-+ fun:_ZN10QMutexPool3getEPKv
-+}
-+{
-+ drd-libQtCore-qt_gettime_is_monotonic()
-+ drd:ConflictingAccess
-+ fun:_Z23qt_gettime_is_monotonicv
-+}
-+
-+#
-+# Suppression patterns for libboost.
-+#
-+
-+# Suppress the races on boost::once_flag::epoch and on
-+# boost::detail::this_thread_epoch. See also the source file
-+# boost/thread/pthread/once.hpp in the Boost source tree
-+# (https://svn.boost.org/trac/boost/browser/trunk/boost/thread/pthread/once.hpp).
-+{
-+ drd-libboost-boost::call_once<void (*)()>(boost::once_flag&, void (*)())
-+ drd:ConflictingAccess
-+ ...
-+ fun:_ZN5boost9call_onceIPFvvEEEvRNS_9once_flagET_
-+}
-+{
-+ drd-libboost-boost::detail::get_once_per_thread_epoch()
-+ drd:ConflictingAccess
-+ fun:_ZN5boost6detail25get_once_per_thread_epochEv
-+}
-+# Suppress the race reports on boost::detail::current_thread_tls_key. See also
-+# https://svn.boost.org/trac/boost/ticket/3526 for more information about why
-+# the access pattern of current_thread_tls_key is safe.
-+{
-+ drd-libboost-boost::detail::get_current_thread_data()
-+ drd:ConflictingAccess
-+ ...
-+ fun:_ZN5boost6detail23get_current_thread_dataEv
-+}
-+{
-+ drd-libboost-boost::detail::set_current_thread_data(boost::detail::thread_data_base*)
-+ drd:ConflictingAccess
-+ ...
-+ fun:_ZN5boost6detail23set_current_thread_dataEPNS0_16thread_data_baseE
-+}
-Index: valgrind-3.17.0/glibc-2.34567-NPTL-helgrind.supp
-===================================================================
---- valgrind-3.17.0.orig/glibc-2.34567-NPTL-helgrind.supp
-+++ /dev/null
-@@ -1,301 +0,0 @@
--
--# FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of
--# other stuff. They should be removed.
--
--##----------------------------------------------------------------------##
--# Suppressions for the Helgrind tool when using
--# a glibc-2.{3,4,5,6,7,8,9} system
--
--####################################################
--# glibc-2.X specific
--# These are generic cover-alls which catch a lot of stuff
--# in various combinations of ld, libc and libpthread
--#
--# Note this is heavyhanded and not very clever:
--#
--# - suppress anything that has its top frame in ld.so
--# That's fine, since it's mostly dynamic linking stuff,
--# which has various deliberate (harmless) races
--#
--# - suppress anything that has its top frame in libc.so.
--# This really isn't clever, since it could hide some
--# legitimate races. But the problem is, if we don't do
--# this, then loads of errors to do with stdio are reported, because
--# H fails to see glibc's internal locking/unlocking of FILE*s
--# as required by POSIX. A better solution is needed.
--#
--# - some of the stdio functions in newer glibc manipulate stdio
--# FILE*s state through mempcpy, which we intercept, so we also need
--# to suppress such manipulations.
--
--#{
--# helgrind-glibc2X-001
--# Helgrind:Race
--# obj:*/lib*/ld-2.*so*
--#}
--
--# helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
--
--# helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
--
--{
-- helgrind-glibc2X-004
-- Helgrind:Race
-- obj:*/lib*/libc-2.*so*
--}
--
--{
-- helgrind-glibc-io-xsputn-mempcpy
-- Helgrind:Race
-- fun:__GI_mempcpy
-- fun:_IO_*xsputn*
-- obj:*/lib*/libc-2.*so*
--}
--
--{
-- helgrind-glibc2X-005
-- Helgrind:Race
-- obj:*/lib*/libpthread-2.*so*
--}
--
--# helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
--
--# helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
--
--# helgrind-glibc2X-008 was merged into helgrind-glibc2X-004
--
--# helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
--
--# helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
--
--# helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
--
--# helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
--
--# helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
--
--# helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
--
--# helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
--
--# helgrind-glibc2X-016 was merged into helgrind-glibc2X-004
--
--# 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-glibc2X-101
-- Helgrind:Race
-- obj:*/lib*/libpthread-2.*so*
-- fun:pthread_*
--}
--{
-- helgrind-glibc2X-102
-- Helgrind:Race
-- fun:mythread_wrapper
-- obj:*/lib*/libpthread-2.*so*
--}
--{
-- helgrind-glibc2X-103
-- Helgrind:Race
-- fun:pthread_cond_*@@GLIBC_2.*
--}
--{
-- helgrind-glibc2X-104
-- Helgrind:Race
-- fun:__lll_mutex_*
--}
--{
-- helgrind-glibc2X-105
-- Helgrind:Race
-- fun:pthread_rwlock_*lock*
--}
--{
-- helgrind-glibc2X-106
-- Helgrind:Race
-- fun:__lll_lock_wait
--}
--{
-- helgrind-glibc2X-107
-- Helgrind:Race
-- obj:*/lib*/libpthread-2.*so*
-- fun:sem_*
--}
--{
-- helgrind-glibc2X-108
-- Helgrind:Race
-- fun:clone
--}
--{
-- helgrind-glibc2X-109
-- Helgrind:Race
-- fun:start_thread
--}
--{
-- helgrind-glibc2X-110
-- Helgrind:Race
-- obj:*/lib*/libc-2.*so*
-- fun:pthread_*
--}
--{
-- helgrind-glibc2X-111
-- Helgrind:Race
-- fun:__lll_*lock_*
--}
--{
-- helgrind-glibc2X-113
-- Helgrind:Race
-- fun:pthread_barrier_wait*
--}
--
--
--####################################################
--# qt4 specific (GNU mangling)
--#
--{
-- helgrind-qt4---QMutex::lock()-QMutex::lock()
-- Helgrind:Race
-- ...
-- fun:_ZN6QMutex4lockEv
-- fun:_ZN6QMutex4lockEv
--}
--
--{
-- helgrind-qt4---QMutex::unlock()-QMutex::unlock()
-- Helgrind:Race
-- ...
-- fun:_ZN6QMutex6unlockEv
-- fun:_ZN6QMutex6unlockEv
--}
--
--{
-- helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
-- Helgrind:Race
-- fun:pthread_setspecific
-- fun:_ZN14QThreadPrivate5startEPv
--}
--
--
--####################################################
--# Other stuff.
--#
--# pthread_exit apparently calls some kind of unwind
--# mechanism - maybe to remove some number of frames
--# from the thread's stack, so as to get back to the
--# outermost frame for the thread? Anyway..
--
--{
-- helgrind---*Unwind*-...-pthread_exit
-- Helgrind:Race
-- fun:*Unwind*
-- ...
-- fun:pthread_exit
--}
--
--{
-- helgrind---...-*Unwind*-*pthread_unwind*
-- Helgrind:Race
-- ...
-- fun:*Unwind*
-- fun:*pthread_unwind*
--}
--
--{
-- helgrind---...-*Unwind*-*pthread_unwind*
-- Helgrind:Race
-- ...
-- fun:_Unwind*
-- ...
-- fun:_Unwind_Backtrace
--}
--
--
--
--
--####################################################
--# To do with thread stack allocation and deallocation?
--#
--{
-- helgrind---free_stacks-__deallocate_stack
-- Helgrind:Race
-- fun:free_stacks
-- fun:__deallocate_stack
--}
--
--{
-- helgrind---__deallocate_stack-start_thread-clone
-- Helgrind:Race
-- fun:__deallocate_stack
-- fun:start_thread
-- fun:clone
--}
--
--
--####################################################
--# To do with pthread_{set,get}specific
--#
--{
-- helgrind---pthread_setspecific
-- Helgrind:Race
-- fun:pthread_setspecific
--}
--
--{
-- helgrind---pthread_getspecific
-- Helgrind:Race
-- fun:pthread_getspecific
--}
--
--
--####################################################
--# To do with dynamic linking
--#
--# helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
--
--{
-- helgrind---_dl_allocate_tls
-- Helgrind:Race
-- fun:mempcpy
-- fun:_dl_allocate_tls_init
-- ...
-- fun:pthread_create@@GLIBC_2.2*
-- fun:pthread_create_WRK
-- 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
--#
--{
-- helgrind---libgomp43-1
-- Helgrind:Race
-- fun:gomp_ordered_sync
--}
--
--{
-- helgrind---libgomp43-1
-- Helgrind:Race
-- fun:gomp_ordered_next
--}
--
--{
-- helgrind---libgomp43-1
-- Helgrind:Race
-- fun:gomp_ordered_last
--}
-Index: valgrind-3.17.0/glibc-2.X-helgrind.supp.in
-===================================================================
---- /dev/null
-+++ valgrind-3.17.0/glibc-2.X-helgrind.supp.in
-@@ -0,0 +1,303 @@
-+# IMPORTANT: DO NOT EDIT glibc-2.X-helgrind.supp, as it is as a generated
-+# file. Instead edit glibc-2.X-helgrind.supp.in.
-+
-+# FIXME 22 Jan 09: helgrind-glibc2X-005 overlaps with a lot of
-+# other stuff. They should be removed.
-+
-+##----------------------------------------------------------------------##
-+# Suppressions for the Helgrind tool when using
-+# a glibc-2.{3,4,5,6,7,8,9} system
-+
-+####################################################
-+# glibc-2.X specific
-+# These are generic cover-alls which catch a lot of stuff
-+# in various combinations of ld, libc and libpthread
-+#
-+# Note this is heavyhanded and not very clever:
-+#
-+# - suppress anything that has its top frame in ld.so
-+# That's fine, since it's mostly dynamic linking stuff,
-+# which has various deliberate (harmless) races
-+#
-+# - suppress anything that has its top frame in libc.so.
-+# This really isn't clever, since it could hide some
-+# legitimate races. But the problem is, if we don't do
-+# this, then loads of errors to do with stdio are reported, because
-+# H fails to see glibc's internal locking/unlocking of FILE*s
-+# as required by POSIX. A better solution is needed.
-+#
-+# - some of the stdio functions in newer glibc manipulate stdio
-+# FILE*s state through mempcpy, which we intercept, so we also need
-+# to suppress such manipulations.
-+
-+#{
-+# helgrind-glibc2X-001
-+# Helgrind:Race
-+# obj:*/lib*/ld-2.*so*
-+#}
-+
-+# helgrind-glibc2X-002 was merged into helgrind-glibc2X-001
-+
-+# helgrind-glibc2X-003 was merged into helgrind-glibc2X-001
-+
-+{
-+ helgrind-glibc2X-004
-+ Helgrind:Race
-+ obj:@GLIBC_LIBC_PATH@
-+}
-+
-+{
-+ helgrind-glibc-io-xsputn-mempcpy
-+ Helgrind:Race
-+ fun:__GI_mempcpy
-+ fun:_IO_*xsputn*
-+ obj:@GLIBC_LIBC_PATH@
-+}
-+
-+{
-+ helgrind-glibc2X-005
-+ Helgrind:Race
-+ obj:@GLIBC_LIBPTHREAD_PATH@
-+}
-+
-+# helgrind-glibc2X-006 was merged into helgrind-glibc2X-005
-+
-+# helgrind-glibc2X-007 was merged into helgrind-glibc2X-001
-+
-+# helgrind-glibc2X-008 was merged into helgrind-glibc2X-004
-+
-+# helgrind-glibc2X-009 was merged into helgrind-glibc2X-004
-+
-+# helgrind-glibc2X-010 was merged into helgrind-glibc2X-001
-+
-+# helgrind-glibc2X-011 was merged into helgrind-glibc2X-004
-+
-+# helgrind-glibc2X-012 was merged into helgrind-glibc2X-001
-+
-+# helgrind-glibc2X-013 was merged into helgrind-glibc2X-001
-+
-+# helgrind-glibc2X-014 was merged into helgrind-glibc2X-001
-+
-+# helgrind-glibc2X-015 was merged into helgrind-glibc2X-004
-+
-+# helgrind-glibc2X-016 was merged into helgrind-glibc2X-004
-+
-+# 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-glibc2X-101
-+ Helgrind:Race
-+ obj:@GLIBC_LIBPTHREAD_PATH@
-+ fun:pthread_*
-+}
-+{
-+ helgrind-glibc2X-102
-+ Helgrind:Race
-+ fun:mythread_wrapper
-+ obj:@GLIBC_LIBPTHREAD_PATH@
-+}
-+{
-+ helgrind-glibc2X-103
-+ Helgrind:Race
-+ fun:pthread_cond_*@@GLIBC_2.*
-+}
-+{
-+ helgrind-glibc2X-104
-+ Helgrind:Race
-+ fun:__lll_mutex_*
-+}
-+{
-+ helgrind-glibc2X-105
-+ Helgrind:Race
-+ fun:pthread_rwlock_*lock*
-+}
-+{
-+ helgrind-glibc2X-106
-+ Helgrind:Race
-+ fun:__lll_lock_wait
-+}
-+{
-+ helgrind-glibc2X-107
-+ Helgrind:Race
-+ obj:@GLIBC_LIBPTHREAD_PATH@
-+ fun:sem_*
-+}
-+{
-+ helgrind-glibc2X-108
-+ Helgrind:Race
-+ fun:clone
-+}
-+{
-+ helgrind-glibc2X-109
-+ Helgrind:Race
-+ fun:start_thread
-+}
-+{
-+ helgrind-glibc2X-110
-+ Helgrind:Race
-+ obj:@GLIBC_LIBC_PATH@
-+ fun:pthread_*
-+}
-+{
-+ helgrind-glibc2X-111
-+ Helgrind:Race
-+ fun:__lll_*lock_*
-+}
-+{
-+ helgrind-glibc2X-113
-+ Helgrind:Race
-+ fun:pthread_barrier_wait*
-+}
-+
-+
-+####################################################
-+# qt4 specific (GNU mangling)
-+#
-+{
-+ helgrind-qt4---QMutex::lock()-QMutex::lock()
-+ Helgrind:Race
-+ ...
-+ fun:_ZN6QMutex4lockEv
-+ fun:_ZN6QMutex4lockEv
-+}
-+
-+{
-+ helgrind-qt4---QMutex::unlock()-QMutex::unlock()
-+ Helgrind:Race
-+ ...
-+ fun:_ZN6QMutex6unlockEv
-+ fun:_ZN6QMutex6unlockEv
-+}
-+
-+{
-+ helgrind-qt4---pthread_setspecific-QThreadPrivate::start(void*)
-+ Helgrind:Race
-+ fun:pthread_setspecific
-+ fun:_ZN14QThreadPrivate5startEPv
-+}
-+
-+
-+####################################################
-+# Other stuff.
-+#
-+# pthread_exit apparently calls some kind of unwind
-+# mechanism - maybe to remove some number of frames
-+# from the thread's stack, so as to get back to the
-+# outermost frame for the thread? Anyway..
-+
-+{
-+ helgrind---*Unwind*-...-pthread_exit
-+ Helgrind:Race
-+ fun:*Unwind*
-+ ...
-+ fun:pthread_exit
-+}
-+
-+{
-+ helgrind---...-*Unwind*-*pthread_unwind*
-+ Helgrind:Race
-+ ...
-+ fun:*Unwind*
-+ fun:*pthread_unwind*
-+}
-+
-+{
-+ helgrind---...-*Unwind*-*pthread_unwind*
-+ Helgrind:Race
-+ ...
-+ fun:_Unwind*
-+ ...
-+ fun:_Unwind_Backtrace
-+}
-+
-+
-+
-+
-+####################################################
-+# To do with thread stack allocation and deallocation?
-+#
-+{
-+ helgrind---free_stacks-__deallocate_stack
-+ Helgrind:Race
-+ fun:free_stacks
-+ fun:__deallocate_stack
-+}
-+
-+{
-+ helgrind---__deallocate_stack-start_thread-clone
-+ Helgrind:Race
-+ fun:__deallocate_stack
-+ fun:start_thread
-+ fun:clone
-+}
-+
-+
-+####################################################
-+# To do with pthread_{set,get}specific
-+#
-+{
-+ helgrind---pthread_setspecific
-+ Helgrind:Race
-+ fun:pthread_setspecific
-+}
-+
-+{
-+ helgrind---pthread_getspecific
-+ Helgrind:Race
-+ fun:pthread_getspecific
-+}
-+
-+
-+####################################################
-+# To do with dynamic linking
-+#
-+# helgrind---ld.so-...-dlsym was merged into helgrind-glibc2X-001
-+
-+{
-+ helgrind---_dl_allocate_tls
-+ Helgrind:Race
-+ fun:mempcpy
-+ fun:_dl_allocate_tls_init
-+ ...
-+ fun:pthread_create@@GLIBC_2.2*
-+ fun:pthread_create_WRK
-+ 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
-+#
-+{
-+ helgrind---libgomp43-1
-+ Helgrind:Race
-+ fun:gomp_ordered_sync
-+}
-+
-+{
-+ helgrind---libgomp43-1
-+ Helgrind:Race
-+ fun:gomp_ordered_next
-+}
-+
-+{
-+ helgrind---libgomp43-1
-+ Helgrind:Race
-+ fun:gomp_ordered_last
-+}
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
index 3fa483d8bc..6fc2f36868 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
@@ -43,15 +43,8 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://s390x_vec_op_t.patch \
file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
- file://0001-Add-missing-musl.supp.patch \
- file://0001-drd-tests-swapcontext-Add-SIGALRM-handler-to-avoid-s.patch \
- file://6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch \
- file://200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch \
- file://a1364805fc74b5690f763033c0c9b43f27613572.patch \
- file://52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch \
"
-SRC_URI[md5sum] = "afe11b5572c3121a781433b7c0ab741b"
-SRC_URI[sha256sum] = "ad3aec668e813e40f238995f60796d9590eee64a16dff88421430630e69285a2"
+SRC_URI[sha256sum] = "00859aa13a772eddf7822225f4b46ee0d39afbe071d32778da4d99984081f7f5"
UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'