diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2021-08-08 03:21:33 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2021-08-11 23:39:32 +0300 |
commit | 213cb2696d00a85cd48d356cb5131824a302d828 (patch) | |
tree | bfdf8fcdfef3a88e392ca3acfca6dec4dc836c9f /poky/meta/recipes-devtools/valgrind | |
parent | 40d8f44b51f83548f7ca8df062dd7435b784c0a8 (diff) | |
download | openbmc-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')
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 0000000000..9a5f6a3f51 --- /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 0000000000..451a459ea7 --- /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 0000000000..fce66b96ae --- /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 0000000000..ece88406c6 --- /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 60b248681e..2805ad0eb3 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 |