From 213cb2696d00a85cd48d356cb5131824a302d828 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Sat, 7 Aug 2021 19:21:33 -0500 Subject: subtree updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Change-Id: Iec7301cf1c43b7cec462dcf88292a8b1b12a5045 --- .../200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch | 34 + .../52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch | 171 +++ .../6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch | 43 + .../a1364805fc74b5690f763033c0c9b43f27613572.patch | 1422 ++++++++++++++++++++ .../recipes-devtools/valgrind/valgrind_3.17.0.bb | 60 +- 5 files changed, 1702 insertions(+), 28 deletions(-) create mode 100644 poky/meta/recipes-devtools/valgrind/valgrind/200b6a5a0ea3e1e154663b0fc575bfe2becf177d.patch create mode 100644 poky/meta/recipes-devtools/valgrind/valgrind/52ed51fc35f8a6148c2940eb46932b02dd3b9b23.patch create mode 100644 poky/meta/recipes-devtools/valgrind/valgrind/6da22a4d246519cd1a638cfc7eff00cdd74413c4.patch create mode 100644 poky/meta/recipes-devtools/valgrind/valgrind/a1364805fc74b5690f763033c0c9b43f27613572.patch (limited to 'poky/meta/recipes-devtools/valgrind') 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 +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 +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 +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 +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() +- 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(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() ++ 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(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 -- cgit v1.2.3