summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/valgrind
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2021-08-08 03:21:33 +0300
committerPatrick Williams <patrick@stwcx.xyz>2021-08-11 23:39:32 +0300
commit213cb2696d00a85cd48d356cb5131824a302d828 (patch)
treebfdf8fcdfef3a88e392ca3acfca6dec4dc836c9f /poky/meta/recipes-devtools/valgrind
parent40d8f44b51f83548f7ca8df062dd7435b784c0a8 (diff)
downloadopenbmc-213cb2696d00a85cd48d356cb5131824a302d828.tar.xz
subtree updates
meta-raspberrypi: 8dc3a31088..c7f4c739a3: Khem Raj (5): linux-raspberrypi: Upgrade to 5.10.52 userland: Update to latest master branch raspberrypi-firmware: Update to latest raspberrypi-tools: Update to latest sdcard_image-rpi.bbclass: Fix IMAGE_TYPEDEP override to use new syntax Martin Jansa (4): Convert to new override syntax Manually fix conversion layer.conf: Update to honister userland: package man pages in PN-doc Pierre-Jean Texier (2): kas: local.conf: bump CONF_VERSION variable kas: local.conf: disable prelink poky: 17aabc0127..492205ea83: Alexander Kanavin (17): llvm: update 12.0.0 -> 12.0.1 systemd: update 248.3 -> 249.1 python3-testools: update 2.4.0 -> 2.5.0 libuv: update 1.41.0 -> 1.42.0 gnu-config: update to latest revision vulkan-samples: update to latest revision cmake: update 3.20.5 -> 3.21.0 cmake: update 3.21.0 -> 3.21.1 mtools: update 4.0.32 -> 4.0.34 util-linux: update 2.37 -> 2.37.1 iputils: update 20210202 -> 20210722 freetype: update 2.10.4 -> 2.11.0 devtool: print a warning on upgrades if PREFERRED_VERSION is set rpm: do not RRECOMMEND rpm-build selftest: add core-image-weston to no-gpl3-no-meta-gpl2 image test shadow: update 4.8.1 -> 4.9 local.conf.sample: disable prelink Bernhard Rosenkränzer (1): gcc: update 11.1 -> 11.2 Bruce Ashfield (6): linux-yocto/5.10: update to v5.10.53 linux-yocto/5.13: update to v5.13.5 linux-yocto/5.4: update to v5.4.135 linux-yocto-rt/5.10: update to -rt47 linux-yocto/5.13: enable TYPEC_TCPCI in usbc fragment linux-yocto/5.10: enable TYPEC_TCPCI in usbc fragment Changqing Li (1): archiver.bbclass: fix do_ar_configured failure for kernel Chen Qi (3): zstd: fix CVE_PRODUCT insane.bbclass: fix the file-rdeps QA message for the new override syntax iputils: fix do_configure failure of missing ip command Damian Wrobel (1): rootfs: remove ldconfig auxiliary cache where appropriate Denys Dmytriyenko (4): meta: convert nested overrides leftovers to new syntax convert-overrides.py: handle few more cases of overrides libwpe: remove rpi-specific custom code poky-tiny: drop uclibc override Jon Mason (1): parselogs.py: qemuarm should be qemuarmv5 Joshua Watt (4): mesa: Fix v3d & vc4 dmabuf import bitbake: bitbake: asyncrpc: Catch early SIGTERM libxft: Fix bad PKG value bitbake: contrib: vim: Update for new override syntax Kai Kang (2): u-boot_2021.07: set UBOOT_MACHINE for qemumips and qemumips64 python3-pytest: display correct version info Kevin Hao (2): meta-yocto-bsp: Introduce the v5.13 bbappend meta-yocto-bsp: Bump to the v5.10.55 Khem Raj (10): binutils: Upgrade to 2.37 branch texinfo: Update gnulib to fix build with glibc 2.34 systemd: Fix build on musl stress-ng: Drop defining daddr_t stress-ng: Detemine minimal stack size via sysconf mesa: Define a fallback for DRIDRIVERS libssh2: Fix syntax for using ptest override toaster-managed-mode.json: Correctly specify term with new override syntax distrooverrides.bbclass: Correct override syntax devtool.py: Correct override syntax Lee Chee Yang (1): aspell: fix CVE-2019-25051 Marek Vasut (2): image_types: Restore pre-btrfs-tools 4.14.1 mkfs.btrfs shrink behavior kernel-uboot: Handle gzip and lzo compression options Martin Jansa (6): convert-overrides.py: show processed file and version of this script convert-overrides.py: remove base_dep_prepend and autotools_dep_prepend exception convert-overrides.py: 0.9.1 include '(' as delimiter for shortvars convert-overrides.py: allow specifying multiple target dirs convert-overrides.py: allow dots before override in vars_re and shortvars_re systemd-boot: use ld.bfd as efi-ld even when gold or lld is used in ${LD} Matthias Klein (2): runqemu: Fix typo in error message runqemu: decouple bios and kernel options Matthias Schiffer (3): initscripts: populate-volatile.sh: do not log to tty0 initscripts: populate-volatile.sh: run create_file synchronously initscripts: fix creation order for /var/log with VOLATILE_LOG_DIR=true Michael Halstead (1): releases: update to include 3.3.1 Michael Opdenacker (18): oe-setup-builddir: update YP docs and OE URLs conf-notes.txt: now suggesting to run 'runqemu qemux86-64' test-manual: document LTO related reproducibility bug quick start manual: update "source oe-init-build-env" output dev-manual: fix wrong reference to class documentation/README: improve BitBake manual referencing guidelines manuals: simplify references to BitBake manual manuals: remove explicit BitBake variable references meta-skeleton: add recipe examples from documentation sources bitbake: doc: bitbake-user-manual: fix syntax in example and improve description bitbake: doc: bitbake-user-manual: update bitbake option help bitbake: doc: bitbake-user-manual: grammar fix for the number of "metadata" manuals: initial documentation for CVE management ref-manual: remove example recipe source files profile-manual: document how to build perf manpages on target cve-check: fix comments cve-check: update link to NVD website for CVE details cve-check: improve comment about CVE patch file names Mingli Yu (2): perlcross: not break build if already patched curl: Upgrade to 7.78.0 Nicolas Dechesne (4): yocto-check-layer: improve missed dependencies checklayer: new function get_layer_dependencies() checklayer: rename _find_layer_depends yocto-check-layer: ensure that all layer dependencies are tested too Oleksandr Kravchuk (1): bitbake.conf: change GNOME_MIRROR to new one Patrick Williams (1): pixman: re-disable iwmmxt Paul Barker (4): bitbake: asyncrpc: Fix bad message error in client bitbake: asyncrpc: Set timeout when waiting for reply from server bitbake: parse/ast: Substitute '~' when naming anonymous functions kernel-yocto: Simplify no git repo case in do_kernel_checkout Quentin Schulz (4): bitbake: doc: Makefile: turn warnings into errors by default bitbake: doc: bitbake-user-manual: ref-variables: order alphabetically the glossary sources bitbake: doc: bitbake-user-manual: ref-variables: force glossary output to be alphabetically sorted bitbake: doc: bitbake-user-manual: replace ``FOO`` by :term:`FOO` where possible Richard Purdie (49): Add MAINTAINERS.md file yocto-check-layer: Remove duplicated code libubootenv: Drop default-env RRECOMMENDS bitbake: data_smart: Allow colon in variable expansion regex meta-poky/meta-yocto-bsp: Convert to new override syntax layer.conf: Update to honister autotools/base/icecc: Remove prepend from function names scripts/contrib: Add override conversion script systemtap: Fix headers issue with x86 and 5.13 headers migration-guides: Add start of 3.4 guide with override migration notes common-tasks: Fix conversion error in npm example bitbake: bitbake: Switch to using new override syntax bitbake: doc/lib: Update to use new override syntax containing colons bitbake: doc/lib: Add fixes for issues missed by the automated conversion bitbake: bitbake: Update to version 1.51.1 layer.conf: Override changes mean we're only compatible with honister Convert to new override syntax meta: Manual override fixes local.conf.sample: Bump version so users update their config sanity.conf: Require bitbake 1.51.1 dropbear: Fix incorrect package override for postrm convert-overrides: Allow script to handle patch/diffs sdk: Decouple default install path from built in path sstate: Fix rebuilds when changing layer config populate_sdk_ext: Fix handling of TOOLCHAIN_HOST_TASK in the eSDK case local.conf.sample: Bump version so users update their config poky: Use SDKPATHINSTALL instead of SDKPATH vim: Clarify where RDEPENDS/RRECOMMENDS apply bitbake: data_smart: Fix inactive overide accidental variable value corruption local.conf.sample: Fix missed override conversion license: Exclude COPYING.MIT from pseudo meta: Convert IMAGE_TYPEDEP to use override syntax uboot-extlinux-config: Fix missing override conversion image/image_types: Convert CONVERSION_CMD/COMPRESS_CMD to new override syntax image: Drop COMPRESS_CMD devupstream: Allow support of native class extensions diffoscope: Upgrade 178 -> 179 strace: Upgrade 5.12 -> 5.13 valgrind: Add patches for glibc 2.34 support bitbake: runqueue: Improve multiconfig deferred task issues elfutils: Add patch from upstream for glibc 2.34 ptest fixes bitbake: doc: Fix append/prepend/remove references bitbake: fetch/tests/toaster: Override conversion fixups bitbake: process: Improve traceback error reporting from main loop bitbake: command: Ensure we catch/handle exceptions bitbake: ui/taskexp: Improve startup exception handling bitbake: ui/taskexp: Fix to work with empty build directories oeqa/runtime/cases/ptest: Increase test timeout from 300s to 450s packagedata: Fix after override syntax change Ross Burton (2): glew: fix Makefile race libx11: fix xkb compilation with _EVDEVK symbols Saul Wold (1): MAINTAINERS: Saul will cover devtool and eSDK Stefan Wiehler (1): dev-manual: fix source release example script Stefano Babic (1): mtd-utils: upgrade 2.1.2 -> 2.1.3 Tim Orling (2): python3-hypothesis: upgrade 6.14.3 -> 6.14.5 python3-importlib-metadata: upgrade 4.6.1 -> 4.6.3 Tony Battersby (2): lto.inc: disable LTO for grub gcc: Backport patch to make LTO builds more reproducible Tony Tascioglu (6): ffmpeg: fix-CVE-2020-20446 ffmpeg: fix CVE-2020-20453 ffmpeg: fix CVE-2020-22015 ffmpeg: fix CVE-2020-22021 ffmpeg: fix CVE-2020-22033 and CVE-2020-22019 ffmpeg: fix CVE-2021-33815 Trevor Woerner (1): ffmpeg: add libatomic for armv5 Ulrich Ölmann (2): initramfs-framework: fix whitespace issue initramfs-framework/setup-live: fix shebang Vinay Kumar (1): glibc: Fix CVE-2021-33574 Vivien Didelot (1): init-manager-systemd: define weak dev manager Zqiang (1): python3: use monotonic clock for condvar if possible hongxu (1): createrepo-c: fix createrepo-c failed in nativesdk leimaohui (1): archiver.bbclass: Fix patch error for recipes that inherit dos2unix. wangmy (3): bind: upgrade 9.16.18 -> 9.16.19 i2c-tools: upgrade 4.2 -> 4.3 diffoscope: upgrade 177 -> 178 zangrc (2): python3-dbus: upgrade 1.2.16 -> 1.2.18 python3-pip: upgrade 21.1.3 -> 21.2.1 meta-openembedded: 8fbcfb9f02..3cf2475ea0: Anastasios Kavoukis (1): pm-qa: fix paths for shell scripts Andreas Müller (3): mozjs/0001-Port-build-to-python3.patch: Fix typos in description jack: upgrade 1.19.18 -> 1.19.19 fluidsynth: upgrade 2.2.1 -> 2.2.2 Andrej Valek (1): thrift: upgrade to 0.14.2 Andrew Jeffery (2): python3-gmpy: Add native support python3-ecdsa: Add native support Armin Kuster (2): hiawatha: fix url. wireshark: update to 3.4.7 Ben Brown (1): android-tools: fix install of adb client when TOOLS is overridden Changqing Li (1): apache2: upgrade 2.4.46 -> 2.4.48 Devendra Tewari (1): Suppress eol in functionfs setup scripts (#147) Gianfranco (1): vboxguestdrivers: upgrade 6.1.22 -> 6.1.24 Joe Slater (2): php: move to version 7.4.21 gtksourceview4: work around dependency deficiency Johannes Obermüller (1): evtest: fix timestamps in output Kai Kang (2): python3-blivet: 3.1.4 -> 3.4.0 python3-blivetgui: 2.1.10 -> 2.2.1 Khem Raj (23): netperf: Update to latest netperf: Add systemd unit file packagegroup-meta-oe: Add lmdb packagegroup-meta-oe: Add mbw addcli: check for ns_get16 and ns_get32 fuse: Define closefrom if not available autofs: Fix build with glibc 2.34+ ntp: Do not use PTHREAD_STACK_MIN on glibc ntp: Fix make check mongodb: Upgrade to 4.4.7 vboxguestdrivers: Remove __divmoddi4 patch packagegroup-meta-oe: Add jemalloc apitrace: Exclude from builds with glibc 2.34+ libhugetlbfs: Disable build with glibc 2.34+ fvwm: Package extra files and man pages luajit: Fix override syntax lua: Drop uclibc patch packagegroup-meta-oe: Correct override name and fix syntax recipes: Fix override syntax emacs,libgpiod,cockpit: Fix override syntax in using FILES_${PN} fvwm: Fix build time paths in target perl/python scripts nis: Drop uclibc check in anon python function jemalloc: Fix build on musl Leon Anavi (3): python3-networkx: Upgrade 2.6.1 -> 2.6.2 python3-pysonos: Upgrade 0.0.53 -> 0.0.54 python3-zeroconf: Upgrade 0.33.1 -> 0.33.2 Li Wang (1): openlldp: fix segfault Maksym Sloyko (1): libusbgx: Configure the Devices Used Martin Jansa (5): Convert to new override syntax layer.conf: Update to honister mariadb: manually fix the conversion packagegroup-meta-oe: manually finish override syntax conversion klibc.bbclass, image_types_sparse.bbclass, packagegroup-meta-oe.bb: update the overrides syntax conversion Mingli Yu (4): mariadb: redefine log-error item jemalloc: add new recipe hdf5: improve reproducibility mariadb: Update SRC_URI Nicolas Dechesne (1): mbw: add new recipe Paulo Neves (1): htop: Add ncurses-terminfo-base to RDEPENDS Sakib Sajal (1): lmdb: add recipe Salman Ahmed (2): nginx: upgrade 1.18.0 -> 1.20.1 nginx: upgrade 1.19.6 -> 1.21.1 Tony Battersby (1): net-snmp: fix QA Issue after LDFLAGS change Yi Zhao (3): postfix: upgrade 3.6.1 -> 3.6.2 audit: upgrade 3.0.2 -> 3.0.3 audit: fix compile error for 2.8.5 Zang Ruochen (1): python3-robotframework: upgrade 4.0.3 -> 4.1 wangmy (17): evince: upgrade 40.2 -> 40.4 gnome-backgrounds: upgrade 3.36.0 -> 3.38.0 gnome-desktop3: upgrade 3.36.6 -> 3.38.8 cmark: upgrade 0.30.0 -> 0.30.1 ctags: upgrade 5.9.20210711.0 -> 5.9.20210718.0 libnet-dns-perl: upgrade 1.31 -> 1.32 libtalloc: upgrade 2.3.2 -> 2.3.3 nghttp2: upgrade 1.43.0 -> 1.44.0 bats: upgrade 1.3.0 -> 1.4.1 networkmanager: upgrade 1.32.2 -> 1.32.4 gensio: upgrade 2.2.7 -> 2.2.8 libmbim: upgrade 1.24.8 -> 1.26.0 fetchmail: upgrade 6.4.19 -> 6.4.20 ctags: upgrade 5.9.20210718.0 -> 5.9.20210801.0 libblockdev: upgrade 2.25 -> 2.26 libqmi: upgrade 1.28.6 -> 1.28.8 monit: upgrade 5.28.0 -> 5.28.1 zangrc (15): python3-qrcode: upgrade 7.1 -> 7.2 python3-rdflib: upgrade 5.0.0 -> 6.0.0 python3-simplejson: upgrade 3.17.2 -> 3.17.3 python3-bitstring: upgrade 3.1.7 -> 3.1.9 python3-iso8601: upgrade 0.1.14 -> 0.1.16 python3-gmqtt: upgrade 0.6.9 -> 0.6.10 python3-graphviz: upgrade 0.16 -> 0.17 python3-smbus: upgrade 4.2 -> 4.3 python3-pandas: upgrade 1.3.0 -> 1.3.1 python3-progress: upgrade 1.5 -> 1.6 python3-sentry-sdk: upgrade 1.3.0 -> 1.3.1 python3-socketio: upgrade 5.3.0 -> 5.4.0 python3-tqdm: upgrade 4.61.2 -> 4.62.0 python3-twisted: upgrade 21.2.0 -> 21.7.0 python3-xlsxwriter: upgrade 1.4.4 -> 1.4.5 zhengruoqin (15): live555: upgrade 20210710 -> 20210720 libtest-warnings-perl: upgrade 0.030 -> 0.031 python3-pybind11: upgrade 2.6.2 -> 2.7.0 python3-pymongo: upgrade 3.11.4 -> 3.12.0 python3-sqlalchemy: upgrade 1.4.20 -> 1.4.22 python3-sentry-sdk: upgrade 1.2.0 -> 1.3.0 libcurses-perl: upgrade 1.37 -> 1.38 libdbd-sqlite-perl: upgrade 1.66 -> 1.68 libencode-perl: upgrade 3.10 -> 3.11 python3-bitarray: upgrade 2.2.2 -> 2.2.3 python3-cbor2: upgrade 5.4.0 -> 5.4.1 python3-gast: upgrade 0.5.0 -> 0.5.1 poppler: upgrade 21.07.0 -> 21.08.0 valijson: upgrade 0.4 -> 0.5 xwd: upgrade 1.0.7 -> 1.0.8 meta-security: 152cdb506b..c885d399cd: Armin Kuster (18): suricata.inc: exclude ppc in rust version suricata: Drop 4.1.x its EOL add meta-rust crowdsec: add pkg packagegroup-core-security.bb: fix suricat-ptest inclusion gitlab-ci.yml: streamline builds matrix krill: Add new pkg clamav: fix branch name and update meta-security: Convert to new override syntax meta-tpm: Convert to new override syntax meta-integrity: Convert to new override syntax meta-hardening: Convert to new override syntax meta-security-isafw: Convert to new override syntax meta-parsec: Convert to new override syntax meta-security-compliance: Convert to new override syntax dynamix-layers: Convert to new override syntax kas: Convert to new override syntax packagegroup-core-security.bb: only include suricat-ptest if rust is included Martin Jansa (1): layer.conf: Update to honister Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Iec7301cf1c43b7cec462dcf88292a8b1b12a5045
Diffstat (limited to 'poky/meta/recipes-devtools/valgrind')
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch34
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch171
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch43
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch1422
-rw-r--r--poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb60
5 files changed, 1702 insertions, 28 deletions
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch b/poky/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch
new file mode 100644
index 000000000..9a5f6a3f5
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch
@@ -0,0 +1,34 @@
+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/poky/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch b/poky/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch
new file mode 100644
index 000000000..451a459ea
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch
@@ -0,0 +1,171 @@
+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/poky/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch b/poky/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch
new file mode 100644
index 000000000..fce66b96a
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch
@@ -0,0 +1,43 @@
+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/poky/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch b/poky/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch
new file mode 100644
index 000000000..ece88406c
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch
@@ -0,0 +1,1422 @@
+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/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
index 60b248681..2805ad0eb 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
@@ -45,6 +45,10 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
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"
@@ -54,7 +58,7 @@ COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'
# patch 0001-memcheck-vgtests-remove-fullpath-after-flags.patch removes relative path
# argument. Change expected stderr files accordingly.
-do_patch_append() {
+do_patch:append() {
bb.build.exec_func('do_sed_paths', d)
}
@@ -64,23 +68,23 @@ do_sed_paths() {
}
# valgrind supports armv7 and above
-COMPATIBLE_HOST_armv4 = 'null'
-COMPATIBLE_HOST_armv5 = 'null'
-COMPATIBLE_HOST_armv6 = 'null'
+COMPATIBLE_HOST:armv4 = 'null'
+COMPATIBLE_HOST:armv5 = 'null'
+COMPATIBLE_HOST:armv6 = 'null'
# valgrind fails with powerpc soft-float
-COMPATIBLE_HOST_powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', 'null', '.*-linux', d)}"
+COMPATIBLE_HOST:powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', 'null', '.*-linux', d)}"
# X32 isn't supported by valgrind at this time
-COMPATIBLE_HOST_linux-gnux32 = 'null'
-COMPATIBLE_HOST_linux-muslx32 = 'null'
+COMPATIBLE_HOST:linux-gnux32 = 'null'
+COMPATIBLE_HOST:linux-muslx32 = 'null'
# Disable for some MIPS variants
-COMPATIBLE_HOST_mipsarchr6 = 'null'
-COMPATIBLE_HOST_linux-gnun32 = 'null'
+COMPATIBLE_HOST:mipsarchr6 = 'null'
+COMPATIBLE_HOST:linux-gnun32 = 'null'
# Disable for powerpc64 with musl
-COMPATIBLE_HOST_libc-musl_powerpc64 = 'null'
+COMPATIBLE_HOST:libc-musl:powerpc64 = 'null'
# brokenseip is unfortunately required by ptests to pass
inherit autotools-brokensep ptest multilib_header
@@ -89,7 +93,7 @@ EXTRA_OECONF = "--enable-tls --without-mpicc"
EXTRA_OECONF += "${@['--enable-only32bit','--enable-only64bit'][d.getVar('SITEINFO_BITS') != '32']}"
# valgrind checks host_cpu "armv7*)", so we need to over-ride the autotools.bbclass default --host option
-EXTRA_OECONF_append_arm = " --host=armv7${HOST_VENDOR}-${HOST_OS}"
+EXTRA_OECONF:append:arm = " --host=armv7${HOST_VENDOR}-${HOST_OS}"
EXTRA_OEMAKE = "-w"
@@ -101,49 +105,49 @@ CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
# which fixes build path issue in DWARF.
SELECTED_OPTIMIZATION = "${DEBUG_FLAGS}"
-do_configure_prepend () {
+do_configure:prepend () {
rm -rf ${S}/config.h
sed -i -e 's:$(abs_top_builddir):$(pkglibdir)/ptest:g' ${S}/none/tests/Makefile.am
sed -i -e 's:$(top_builddir):$(pkglibdir)/ptest:g' ${S}/memcheck/tests/Makefile.am
}
-do_install_append () {
+do_install:append () {
install -m 644 ${B}/default.supp ${D}/${libexecdir}/valgrind/
oe_multilib_header valgrind/config.h
}
VALGRINDARCH ?= "${TARGET_ARCH}"
-VALGRINDARCH_aarch64 = "arm64"
-VALGRINDARCH_x86-64 = "amd64"
-VALGRINDARCH_x86 = "x86"
-VALGRINDARCH_mips = "mips32"
-VALGRINDARCH_mipsel = "mips32"
-VALGRINDARCH_mips64el = "mips64"
-VALGRINDARCH_powerpc = "ppc"
-VALGRINDARCH_powerpc64 = "ppc64"
-VALGRINDARCH_powerpc64le = "ppc64le"
+VALGRINDARCH:aarch64 = "arm64"
+VALGRINDARCH:x86-64 = "amd64"
+VALGRINDARCH:x86 = "x86"
+VALGRINDARCH:mips = "mips32"
+VALGRINDARCH:mipsel = "mips32"
+VALGRINDARCH:mips64el = "mips64"
+VALGRINDARCH:powerpc = "ppc"
+VALGRINDARCH:powerpc64 = "ppc64"
+VALGRINDARCH:powerpc64le = "ppc64le"
INHIBIT_PACKAGE_STRIP_FILES = "${PKGD}${libexecdir}/valgrind/vgpreload_memcheck-${VALGRINDARCH}-linux.so"
-RDEPENDS_${PN} += "perl"
+RDEPENDS:${PN} += "perl"
# valgrind needs debug information for ld.so at runtime in order to
# redirect functions like strlen.
-RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
+RRECOMMENDS:${PN} += "${TCLIBC}-dbg"
-RDEPENDS_${PN}-ptest += " bash coreutils curl file \
+RDEPENDS:${PN}-ptest += " bash coreutils curl file \
gdb libgomp \
perl \
perl-module-file-basename perl-module-file-glob perl-module-getopt-long \
perl-module-overloading perl-module-cwd perl-module-ipc-open3 \
perl-module-carp perl-module-symbol \
procps sed ${PN}-dbg ${PN}-src ${TCLIBC}-src gcc-runtime-dbg"
-RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
# One of the tests contains a bogus interpreter path on purpose.
# Skip file dependency check
-SKIP_FILEDEPS_${PN}-ptest = '1'
-INSANE_SKIP_${PN}-ptest = "debug-deps"
+SKIP_FILEDEPS:${PN}-ptest = '1'
+INSANE_SKIP:${PN}-ptest = "debug-deps"
do_compile_ptest() {
oe_runmake check