summaryrefslogtreecommitdiffstats
path: root/external/poky/meta/recipes-devtools/valgrind
diff options
context:
space:
mode:
Diffstat (limited to 'external/poky/meta/recipes-devtools/valgrind')
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch2
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Make-local-functions-static-to-avoid-assembler-error.patch2
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Return-a-valid-exit_code-from-vg_regtest.patch27
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch40
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch144
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch98
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch34
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch87
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-filter_xml_frames-do-not-filter-usr.patch39
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch32
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64237
-rwxr-xr-xexternal/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest43
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch19
-rw-r--r--external/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb (renamed from external/poky/meta/recipes-devtools/valgrind/valgrind_3.14.0.bb)124
14 files changed, 858 insertions, 70 deletions
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch
index 3efe65a9..81ab29f3 100644
--- a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch
@@ -3,7 +3,7 @@ From: Randy MacLeod <Randy.MacLeod@windriver.com>
Date: Fri, 19 Oct 2018 10:31:12 -0400
Subject: [PATCH] Guard against __GLIBC_PREREQ for musl libc
-Upstream-Status: Pending
+Upstream-Status: Submitted https://bugs.kde.org/show_bug.cgi?id=400162
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Make-local-functions-static-to-avoid-assembler-error.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Make-local-functions-static-to-avoid-assembler-error.patch
index 45e5ea3e..8d2ca573 100644
--- a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Make-local-functions-static-to-avoid-assembler-error.patch
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Make-local-functions-static-to-avoid-assembler-error.patch
@@ -18,7 +18,7 @@ and more importantly also avoid an assembler error:
/tmp/cce22iiw.s:915: Error: symbol `exit_0' is already defined
/tmp/cce22iiw.s:917: Error: symbol `exit' is already defined
-Upstream-Status: Pending
+Upstream-Status: Submitted https://bugs.kde.org/show_bug.cgi?id=400164
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Return-a-valid-exit_code-from-vg_regtest.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Return-a-valid-exit_code-from-vg_regtest.patch
new file mode 100644
index 00000000..e7af5efe
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Return-a-valid-exit_code-from-vg_regtest.patch
@@ -0,0 +1,27 @@
+From 5eebdefd2251803e7d21081745018fcb16b2ba71 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Wed, 8 May 2019 20:16:52 -0400
+Subject: [PATCH] Return a valid exit_code from vg_regtest
+
+Upstream-Status: Pending
+
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+---
+ tests/vg_regtest.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in
+index 909af3be8..f2799c4e3 100755
+--- a/tests/vg_regtest.in
++++ b/tests/vg_regtest.in
+@@ -403,6 +403,7 @@ sub mysystem($)
+ exit 1;
+ }
+ }
++ return $exit_code;
+ }
+ # if $keepunfiltered, copies $1 to $1.unfiltered.out
+ # renames $0 tp $1
+--
+2.17.0
+
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch
new file mode 100644
index 00000000..4bc4bb08
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch
@@ -0,0 +1,40 @@
+From bf63e35c3036e6040c8cfecabc7160b1f36b0591 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Wed, 28 Aug 2019 12:31:15 -0400
+Subject: [PATCH] adjust path filter for 2 memcheck tests
+
+Test executables produced when cross-compiling can contain
+relative paths such as:
+ coregrind/tests/../../../valgrind-3.15.0/coregrind/
+Use the --fullpath-after option to match and therefore
+suppress more of the prefix to enable test to pass.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+---
+ memcheck/tests/badfree3.vgtest | 2 +-
+ memcheck/tests/varinfo5.vgtest | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/memcheck/tests/badfree3.vgtest b/memcheck/tests/badfree3.vgtest
+index 3dfc5fd8a..57eec21f3 100644
+--- a/memcheck/tests/badfree3.vgtest
++++ b/memcheck/tests/badfree3.vgtest
+@@ -1,3 +1,3 @@
+ prog: badfree
+-vgopts: -q --fullpath-after=memcheck/ --fullpath-after=coregrind/
++vgopts: -q --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/
+ stderr_filter_args: badfree.c
+diff --git a/memcheck/tests/varinfo5.vgtest b/memcheck/tests/varinfo5.vgtest
+index 063d00dce..6907bb2f6 100644
+--- a/memcheck/tests/varinfo5.vgtest
++++ b/memcheck/tests/varinfo5.vgtest
+@@ -1,3 +1,3 @@
+ prog: varinfo5
+-vgopts: --fullpath-after=memcheck/ --fullpath-after=coregrind/ --read-var-info=yes --read-inline-info=yes -q
++vgopts: --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/ --read-var-info=yes --read-inline-info=yes -q
+ stderr_filter: filter_varinfo3
+--
+2.22.0
+
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch
new file mode 100644
index 00000000..9afa7f6a
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch
@@ -0,0 +1,144 @@
+From abbc0761fa0349d49b10dc8c0f10af6bc0578c40 Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark@klomp.org>
+Date: Tue, 12 May 2020 16:58:36 +0200
+Subject: [PATCH 1/2] gcc10 arm64 build needs __getauxval for linking with
+ libgcc
+
+Provide a new library libgcc-sup-<platform>.a that contains symbols
+needed by libgcc. This needs to be linked after -lgcc to provide
+any symbols missing which would normally be provided by glibc.
+At the moment this only provides __getauxval on arm64 linux.
+
+https://bugs.kde.org/show_bug.cgi?id=421321
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=abbc0761fa0349d49b10dc8c0f10af6bc0578c40]
+
+---
+ Makefile.tool.am | 3 +-
+ coregrind/Makefile.am | 26 +++++++++++++++++
+ coregrind/m_libgcc_sup.c | 61 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 89 insertions(+), 1 deletion(-)
+ create mode 100644 coregrind/m_libgcc_sup.c
+
+diff --git a/Makefile.tool.am b/Makefile.tool.am
+index cc2fa0ee6..2bf90de5d 100644
+--- a/Makefile.tool.am
++++ b/Makefile.tool.am
+@@ -17,7 +17,8 @@ TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@ = \
+ endif
+
+
+-TOOL_LDADD_COMMON = -lgcc
++TOOL_LDADD_COMMON = -lgcc \
++ $(top_builddir)/coregrind/libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
+ TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \
+ $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) $(TOOL_LDADD_COMMON)
+ if VGCONF_HAVE_PLATFORM_SEC
+diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
+index 6a1a925fb..1753fb633 100644
+--- a/coregrind/Makefile.am
++++ b/coregrind/Makefile.am
+@@ -542,6 +542,32 @@ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_DEPENDENCIES = \
+ libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
+ endif
+
++#----------------------------------------------------------------------------
++# libgcc-sup-<platform>.a
++# Special supplemental library for functions normally supplied by glibc
++# used by libgcc.
++#----------------------------------------------------------------------------
++
++pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
++if VGCONF_HAVE_PLATFORM_SEC
++pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
++endif
++
++libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
++ m_libgcc_sup.c
++libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
++ $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
++libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
++ $(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
++if VGCONF_HAVE_PLATFORM_SEC
++libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
++ m_libgcc_sup.c
++libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
++ $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
++libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
++ $(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
++endif
++
+ #----------------------------------------------------------------------------
+ # libreplacemalloc_toolpreload-<platform>.a
+ #----------------------------------------------------------------------------
+diff --git a/coregrind/m_libgcc_sup.c b/coregrind/m_libgcc_sup.c
+new file mode 100644
+index 000000000..e29325459
+--- /dev/null
++++ b/coregrind/m_libgcc_sup.c
+@@ -0,0 +1,61 @@
++/* -*- mode: C; c-basic-offset: 3; -*- */
++
++/*--------------------------------------------------------------------*/
++/*--- Supplemental functions for libgcc normally provided by glibc ---*/
++/*--------------------------------------------------------------------*/
++
++/*
++ This file is part of Valgrind, a dynamic binary instrumentation
++ framework.
++
++ Copyright (C) 2020 Mark Wielaard
++ mark@klomp.org
++
++ This program is free software; you can redistribute it and/or
++ modify it under the terms of the GNU General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, see <http://www.gnu.org/licenses/>.
++
++ The GNU General Public License is contained in the file COPYING.
++*/
++
++#include "config.h"
++#include "pub_core_basics.h"
++#include "pub_core_clientstate.h"
++
++/*====================================================================*/
++/*=== arm64 libgcc support function for init_have_lse_atomics ===*/
++/*====================================================================*/
++
++#if defined(VGP_arm64_linux)
++struct auxv
++{
++ Word a_type;
++ union {
++ void *a_ptr;
++ Word a_val;
++ } u;
++};
++#define AT_NULL 0
++
++unsigned long int __getauxval (unsigned long int type);
++unsigned long int __getauxval (unsigned long int type)
++{
++ struct auxv *p;
++ for (p = (struct auxv *) VG_(client_auxv);
++ p != NULL && p->a_type != AT_NULL;
++ p++)
++ if (p->a_type == type)
++ return p->u.a_val;
++
++ return 0;
++}
++#endif
+--
+2.26.2
+
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch
new file mode 100644
index 00000000..15fbbe95
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch
@@ -0,0 +1,98 @@
+From 5d411fd147d652e9d7bb259f4048693c6e4742aa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 9 Mar 2020 16:30:19 -0700
+Subject: [PATCH] memcheck/tests: Fix timerfd syscall test
+
+modern libc provides these functions, moreover this also ensures that we
+are 64bit time_t safe. Fallback to existing definitions if libc does not
+have the implementation or syscall is not defined
+
+Upstream-Status: Submitted [https://sourceforge.net/p/valgrind/mailman/message/36943897/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ config.h.in | 9 +++++++++
+ configure.ac | 3 +++
+ memcheck/tests/linux/timerfd-syscall.c | 10 ++++++++--
+ 5 files changed, 32 insertions(+), 2 deletions(-)
+
+--- a/config.h.in
++++ b/config.h.in
+@@ -301,6 +301,9 @@
+ /* Define to 1 if you have the <sys/sysnvl.h> header file. */
+ #undef HAVE_SYS_SYSNVL_H
+
++/* Define to 1 if you have the <sys/timerfd.h> header file. */
++#undef HAVE_SYS_TIMERFD_H
++
+ /* Define to 1 if you have the <sys/time.h> header file. */
+ #undef HAVE_SYS_TIME_H
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -4098,6 +4098,7 @@ AC_CHECK_HEADERS([ \
+ sys/syscall.h \
+ sys/sysnvl.h \
+ sys/time.h \
++ sys/timerfd.h \
+ sys/types.h \
+ ])
+
+--- a/memcheck/tests/linux/timerfd-syscall.c
++++ b/memcheck/tests/linux/timerfd-syscall.c
+@@ -45,6 +45,9 @@
+ #if defined(HAVE_SYS_TIME_H)
+ #include <sys/time.h>
+ #endif
++#if defined(HAVE_SYS_TIMERFD_H)
++#include <sys/timerfd.h>
++#endif
+ #if defined(HAVE_SYS_TYPES_H)
+ #include <sys/types.h>
+ #endif
+@@ -54,7 +57,8 @@
+ * timerfd_* system call numbers introduced in 2.6.23. These constants are
+ * not yet in the glibc 2.7 headers, that is why they are defined here.
+ */
+-#ifndef __NR_timerfd_create
++#if !defined(HAVE_SYS_TIMERFD_H)
++#if !defined(__NR_timerfd_create)
+ #if defined(__x86_64__)
+ #define __NR_timerfd_create 283
+ #elif defined(__i386__)
+@@ -67,8 +71,10 @@
+ #error Cannot detect your architecture!
+ #endif
+ #endif
++#endif
+
+-#ifndef __NR_timerfd_settime
++#if !defined(HAVE_SYS_TIMERFD_H)
++#if !defined(__NR_timerfd_settime)
+ #if defined(__x86_64__)
+ #define __NR_timerfd_settime 286
+ #define __NR_timerfd_gettime 287
+@@ -85,7 +91,7 @@
+ #error Cannot detect your architecture!
+ #endif
+ #endif
+-
++#endif
+
+
+ /* Definitions from include/linux/timerfd.h */
+@@ -127,6 +133,7 @@ void set_timespec(struct timespec *tmr,
+ tmr->tv_nsec = (long) (1000ULL * (ustime % 1000000ULL));
+ }
+
++#if !defined(HAVE_SYS_TIMERFD_H)
+ int timerfd_create(int clockid, int flags)
+ {
+ return syscall(__NR_timerfd_create, clockid, flags);
+@@ -142,6 +149,7 @@ int timerfd_gettime(int ufc, struct itim
+ {
+ return syscall(__NR_timerfd_gettime, ufc, otmr);
+ }
++#endif
+
+ long waittmr(int tfd, int timeo)
+ {
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
new file mode 100644
index 00000000..d641998d
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch
@@ -0,0 +1,34 @@
+From f405297d3382cd98391d02f397e2387da1f42879 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 24 Jan 2020 17:55:39 +0100
+Subject: [PATCH] none/tests/fdleak_cmsg.stderr.exp: adjust /tmp paths
+
+In oe-core, /tmp is linked to /var/volatile/tmp and
+valgrind output changes accordingly
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ none/tests/fdleak_cmsg.stderr.exp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/none/tests/fdleak_cmsg.stderr.exp b/none/tests/fdleak_cmsg.stderr.exp
+index 6e5a797b9..0ede1ab18 100644
+--- a/none/tests/fdleak_cmsg.stderr.exp
++++ b/none/tests/fdleak_cmsg.stderr.exp
+@@ -25,10 +25,10 @@ Open file descriptor ...: /dev/null
+
+
+ FILE DESCRIPTORS: 6 open at exit.
+-Open file descriptor ...: /tmp/data2
++Open file descriptor ...: ...
+ ...
+
+-Open file descriptor ...: /tmp/data1
++Open file descriptor ...: ...
+ ...
+
+ Open AF_UNIX socket ...: <unknown>
+--
+2.17.1
+
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch
new file mode 100644
index 00000000..f407d819
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch
@@ -0,0 +1,87 @@
+From 92fcf75d6d3903e45492b041bf4ad07787d2e58a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 27 Jan 2020 19:50:04 -0800
+Subject: [PATCH] drd/tests/pth_detached3: Make pthread_detach() call portable
+ across platforms
+
+pthread_t is opaque type therefore we can not apply simple arithmetic to
+variables of pthread_t type this test needs to pass a invalid pthread_t
+handle, typcasting to uintptr_t works too and is portable across glibc and
+musl
+
+Fixes
+| pth_detached3.c:24:25: error: invalid use of undefined type 'struct __pthread'
+| 24 | pthread_detach(thread + 8);
+| | ^
+
+[ bvanassche: reformatted patch description and fixed up line numbers ]
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=92fcf75d6d3903e45492b041bf4ad07787d2e58a]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ drd/tests/pth_detached3.c | 3 ++-
+ drd/tests/pth_detached3.stderr.exp1 | 4 ++--
+ drd/tests/pth_detached3.stderr.exp2 | 4 ++--
+ 3 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/drd/tests/pth_detached3.c b/drd/tests/pth_detached3.c
+index c02eef1..efeb15b 100644
+--- a/drd/tests/pth_detached3.c
++++ b/drd/tests/pth_detached3.c
+@@ -4,6 +4,7 @@
+ #include <errno.h>
+ #include <pthread.h>
+ #include <stdio.h>
++#include <stdint.h>
+
+ static void* thread_func(void* arg)
+ {
+@@ -21,7 +22,7 @@ int main(int argc, char** argv)
+ pthread_detach(thread);
+
+ /* Invoke pthread_detach() with an invalid thread ID. */
+- pthread_detach(thread + 8);
++ pthread_detach((pthread_t)((uintptr_t)thread + 8));
+
+ fprintf(stderr, "Finished.\n");
+
+diff --git a/drd/tests/pth_detached3.stderr.exp1 b/drd/tests/pth_detached3.stderr.exp1
+index 58412ec..8dd58ba 100644
+--- a/drd/tests/pth_detached3.stderr.exp1
++++ b/drd/tests/pth_detached3.stderr.exp1
+@@ -1,11 +1,11 @@
+
+ pthread_detach(): invalid thread ID 0x........
+ at 0x........: pthread_detach (drd_pthread_intercepts.c:?)
+- by 0x........: main (pth_detached3.c:21)
++ by 0x........: main (pth_detached3.c:22)
+
+ pthread_detach(): invalid thread ID 0x........
+ at 0x........: pthread_detach (drd_pthread_intercepts.c:?)
+- by 0x........: main (pth_detached3.c:24)
++ by 0x........: main (pth_detached3.c:25)
+
+ Finished.
+
+diff --git a/drd/tests/pth_detached3.stderr.exp2 b/drd/tests/pth_detached3.stderr.exp2
+index bdc5cf8..e82dee1 100644
+--- a/drd/tests/pth_detached3.stderr.exp2
++++ b/drd/tests/pth_detached3.stderr.exp2
+@@ -2,12 +2,12 @@
+ pthread_detach(): invalid thread ID 0x........
+ at 0x........: vgDrd_set_joinable (drd_pthread_intercepts.c:?)
+ by 0x........: pthread_detach (drd_pthread_intercepts.c:?)
+- by 0x........: main (pth_detached3.c:21)
++ by 0x........: main (pth_detached3.c:22)
+
+ pthread_detach(): invalid thread ID 0x........
+ at 0x........: vgDrd_set_joinable (drd_pthread_intercepts.c:?)
+ by 0x........: pthread_detach (drd_pthread_intercepts.c:?)
+- by 0x........: main (pth_detached3.c:24)
++ by 0x........: main (pth_detached3.c:25)
+
+ Finished.
+
+--
+2.9.3
+
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-filter_xml_frames-do-not-filter-usr.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-filter_xml_frames-do-not-filter-usr.patch
new file mode 100644
index 00000000..bf0f0ded
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-filter_xml_frames-do-not-filter-usr.patch
@@ -0,0 +1,39 @@
+From d1dea3c2bcf1e22baab39e2c0b8ca59db8a5bc37 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Mon, 13 May 2019 17:12:21 -0400
+Subject: [PATCH 1/2] valgrind: filter_xml_frames: do not filter /usr
+
+filter_xml_frames is intended to filter system paths under
+'/usr' that vary from platform to platform. In the ptest case
+for Yocto's valgrind, the ptest executables are placed under:
+ /usr/lib/valgrind/ptest
+and if these frames are filtered out, then the 'drd' tests fail
+the comparision between exepected and actual output.
+
+Changing this filter allows the comparison to succeed without
+any negative impact.
+
+Upstream-Status: Inappropriate [Yocto specific]
+
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+---
+ tests/filter_xml_frames | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/filter_xml_frames b/tests/filter_xml_frames
+index f1fa3f070..04fbc82de 100755
+--- a/tests/filter_xml_frames
++++ b/tests/filter_xml_frames
+@@ -47,7 +47,8 @@ while (my $line = <>)
+ $has_function_name = 1 if ($line =~ /<fn>/);
+ # This may require tweaking; currently /lib and /usr/lib are matched
+ $has_system_obj = 1 if ($line =~ /<obj>\/lib/);
+- $has_system_obj = 1 if ($line =~ /<obj>\/usr\/lib/);
++# for Yocto, skip /usr since tests are under /usr/lib/...
++# $has_system_obj = 1 if ($line =~ /<obj>\/usr\/lib/);
+ }
+ }
+
+--
+2.17.0
+
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch
deleted file mode 100644
index 05886c74..00000000
--- a/external/poky/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a6547fc17c120dbd95b852f50b0c4bdee4fedb9a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:20:32 -0700
-Subject: [PATCH 6/6] pth_detached3.c: Dereference pthread_t before adding
- offset to it
-
-Fixes
-error: invalid use of undefined type 'struct __pthread'
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- drd/tests/pth_detached3.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drd/tests/pth_detached3.c b/drd/tests/pth_detached3.c
-index c02eef1..35d43a6 100644
---- a/drd/tests/pth_detached3.c
-+++ b/drd/tests/pth_detached3.c
-@@ -21,7 +21,7 @@ int main(int argc, char** argv)
- pthread_detach(thread);
-
- /* Invoke pthread_detach() with an invalid thread ID. */
-- pthread_detach(thread + 8);
-+ pthread_detach((pthread_t*)(&thread + 8));
-
- fprintf(stderr, "Finished.\n");
-
---
-2.13.1
-
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/external/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
new file mode 100644
index 00000000..a3a0c6e5
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -0,0 +1,237 @@
+gdbserver_tests/hgtls
+cachegrind/tests/ann1
+callgrind/tests/simwork1
+callgrind/tests/simwork2
+callgrind/tests/simwork3
+callgrind/tests/simwork-both
+callgrind/tests/simwork-cache
+callgrind/tests/threads
+callgrind/tests/threads-use
+drd/tests/annotate_barrier
+drd/tests/annotate_barrier_xml
+drd/tests/annotate_hbefore
+drd/tests/annotate_hb_err
+drd/tests/annotate_hb_race
+drd/tests/annotate_ignore_read
+drd/tests/annotate_ignore_rw
+drd/tests/annotate_ignore_rw2
+drd/tests/annotate_ignore_write
+drd/tests/annotate_ignore_write2
+drd/tests/annotate_order_1
+drd/tests/annotate_order_2
+drd/tests/annotate_order_3
+drd/tests/annotate_publish_hg
+drd/tests/annotate_rwlock
+drd/tests/annotate_rwlock_hg
+drd/tests/annotate_sem
+drd/tests/annotate_smart_pointer
+drd/tests/annotate_smart_pointer2
+drd/tests/annotate_spinlock
+drd/tests/annotate_static
+drd/tests/annotate_trace_memory
+drd/tests/annotate_trace_memory_xml
+drd/tests/atomic_var
+drd/tests/bar_bad
+drd/tests/bar_bad_xml
+drd/tests/bar_trivial
+drd/tests/bug-235681
+drd/tests/bug322621
+drd/tests/circular_buffer
+drd/tests/concurrent_close
+drd/tests/custom_alloc
+drd/tests/custom_alloc_fiw
+drd/tests/dlopen
+drd/tests/fork-parallel
+drd/tests/fork-serial
+drd/tests/fp_race
+drd/tests/fp_race2
+drd/tests/fp_race_xml
+drd/tests/free_is_write
+drd/tests/free_is_write2
+drd/tests/hg01_all_ok
+drd/tests/hg02_deadlock
+drd/tests/hg03_inherit
+drd/tests/hg04_race
+drd/tests/hg05_race2
+drd/tests/hg06_readshared
+drd/tests/hold_lock_1
+drd/tests/hold_lock_2
+drd/tests/linuxthreads_det
+drd/tests/matinv
+drd/tests/memory_allocation
+drd/tests/monitor_example
+drd/tests/new_delete
+drd/tests/pth_barrier
+drd/tests/pth_barrier2
+drd/tests/pth_barrier3
+drd/tests/pth_barrier_race
+drd/tests/pth_barrier_reinit
+drd/tests/pth_barrier_thr_cr
+drd/tests/pth_broadcast
+drd/tests/pth_cancel_locked
+drd/tests/pth_cleanup_handler
+drd/tests/pth_cond_race
+drd/tests/pth_cond_race2
+drd/tests/pth_detached2
+drd/tests/pth_detached3
+drd/tests/pth_detached_sem
+drd/tests/pth_inconsistent_cond_wait
+drd/tests/pth_mutex_reinit
+drd/tests/pth_once
+drd/tests/pth_process_shared_mutex
+drd/tests/pth_spinlock
+drd/tests/pth_uninitialized_cond
+drd/tests/read_and_free_race
+drd/tests/recursive_mutex
+drd/tests/rwlock_race
+drd/tests/rwlock_test
+drd/tests/rwlock_type_checking
+drd/tests/sem_as_mutex
+drd/tests/sem_as_mutex2
+drd/tests/sem_as_mutex3
+drd/tests/sem_open
+drd/tests/sem_open2
+drd/tests/sem_open3
+drd/tests/sem_open_traced
+drd/tests/sem_wait
+drd/tests/sigalrm
+drd/tests/sigaltstack
+drd/tests/std_atomic
+drd/tests/std_string
+drd/tests/std_thread
+drd/tests/std_thread2
+drd/tests/str_tester
+drd/tests/tc01_simple_race
+drd/tests/tc02_simple_tls
+drd/tests/tc03_re_excl
+drd/tests/tc04_free_lock
+drd/tests/tc05_simple_race
+drd/tests/tc06_two_races
+drd/tests/tc07_hbl1
+drd/tests/tc08_hbl2
+drd/tests/tc09_bad_unlock
+drd/tests/tc10_rec_lock
+drd/tests/tc11_XCHG
+drd/tests/tc12_rwl_trivial
+drd/tests/tc13_laog1
+drd/tests/tc15_laog_lockdel
+drd/tests/tc16_byterace
+drd/tests/tc17_sembar
+drd/tests/tc18_semabuse
+drd/tests/tc19_shadowmem
+drd/tests/tc21_pthonce
+drd/tests/tc22_exit_w_lock
+drd/tests/tc23_bogus_condwait
+helgrind/tests/annotate_rwlock
+helgrind/tests/annotate_smart_pointer
+helgrind/tests/bar_bad
+helgrind/tests/bar_trivial
+helgrind/tests/bug322621
+helgrind/tests/cond_init_destroy
+helgrind/tests/cond_timedwait_invalid
+helgrind/tests/cond_timedwait_test
+helgrind/tests/free_is_write
+helgrind/tests/hg01_all_ok
+helgrind/tests/hg03_inherit
+helgrind/tests/hg04_race
+helgrind/tests/hg05_race2
+helgrind/tests/hg06_readshared
+helgrind/tests/locked_vs_unlocked1_fwd
+helgrind/tests/locked_vs_unlocked1_rev
+helgrind/tests/locked_vs_unlocked2
+helgrind/tests/locked_vs_unlocked3
+helgrind/tests/pth_barrier1
+helgrind/tests/pth_barrier2
+helgrind/tests/pth_barrier3
+helgrind/tests/pth_destroy_cond
+helgrind/tests/rwlock_race
+helgrind/tests/rwlock_test
+helgrind/tests/shmem_abits
+helgrind/tests/stackteardown
+helgrind/tests/t2t_laog
+helgrind/tests/tc01_simple_race
+helgrind/tests/tc02_simple_tls
+helgrind/tests/tc03_re_excl
+helgrind/tests/tc04_free_lock
+helgrind/tests/tc05_simple_race
+helgrind/tests/tc06_two_races
+helgrind/tests/tc06_two_races_xml
+helgrind/tests/tc07_hbl1
+helgrind/tests/tc08_hbl2
+helgrind/tests/tc09_bad_unlock
+helgrind/tests/tc10_rec_lock
+helgrind/tests/tc11_XCHG
+helgrind/tests/tc12_rwl_trivial
+helgrind/tests/tc13_laog1
+helgrind/tests/tc14_laog_dinphils
+helgrind/tests/tc15_laog_lockdel
+helgrind/tests/tc16_byterace
+helgrind/tests/tc17_sembar
+helgrind/tests/tc18_semabuse
+helgrind/tests/tc19_shadowmem
+helgrind/tests/tc20_verifywrap
+helgrind/tests/tc21_pthonce
+helgrind/tests/tc22_exit_w_lock
+helgrind/tests/tc23_bogus_condwait
+helgrind/tests/tc24_nonzero_sem
+helgrind/tests/tls_threads
+memcheck/tests/accounting
+memcheck/tests/addressable
+memcheck/tests/arm64-linux/scalar
+memcheck/tests/atomic_incs
+memcheck/tests/badaddrvalue
+memcheck/tests/badfree
+memcheck/tests/badfree-2trace
+memcheck/tests/badfree3
+memcheck/tests/badjump
+memcheck/tests/badjump2
+memcheck/tests/badloop
+memcheck/tests/badpoll
+memcheck/tests/badrw
+memcheck/tests/big_blocks_freed_list
+memcheck/tests/brk2
+memcheck/tests/dw4
+memcheck/tests/err_disable4
+memcheck/tests/err_disable_arange1
+memcheck/tests/leak-autofreepool-5
+memcheck/tests/leak_cpp_interior
+memcheck/tests/linux/lsframe1
+memcheck/tests/linux/lsframe2
+memcheck/tests/linux/with-space
+memcheck/tests/origin5-bz2
+memcheck/tests/origin6-fp
+memcheck/tests/overlap
+memcheck/tests/partial_load_dflt
+memcheck/tests/pdb-realloc2
+memcheck/tests/sh-mem
+memcheck/tests/sh-mem-random
+memcheck/tests/sigaltstack
+memcheck/tests/sigkill
+memcheck/tests/signal2
+memcheck/tests/supp_unknown
+memcheck/tests/threadname
+memcheck/tests/threadname_xml
+memcheck/tests/unit_oset
+memcheck/tests/varinfo1
+memcheck/tests/varinfo2
+memcheck/tests/varinfo3
+memcheck/tests/varinfo4
+memcheck/tests/varinfo5
+memcheck/tests/varinfo6
+memcheck/tests/varinforestrict
+memcheck/tests/vcpu_bz2
+memcheck/tests/vcpu_fbench
+memcheck/tests/vcpu_fnfns
+memcheck/tests/wcs
+memcheck/tests/wrap1
+memcheck/tests/wrap2
+memcheck/tests/wrap3
+memcheck/tests/wrap4
+memcheck/tests/wrap5
+memcheck/tests/wrap6
+memcheck/tests/wrap7
+memcheck/tests/wrap8
+memcheck/tests/wrapmalloc
+memcheck/tests/wrapmallocstatic
+memcheck/tests/writev1
+memcheck/tests/xml1
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest b/external/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
index 447d33c8..97b0a85d 100755
--- a/external/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -4,13 +4,46 @@
# wraps the valgrind regression script vg_regtest.
#
# Dave Lerner <dave.lerner@windriver.com>
+# Randy MacLeod <Randy.MacLeod@windriver.com>
###############################################################
-VALGRINDLIB=@libdir@/valgrind
-LOG="${VALGRINDLIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log"
+VALGRIND_LIB=@libdir@/valgrind
+VALGRIND_BIN=@bindir@/valgrind
+
+LOG="${VALGRIND_LIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log"
+
+TOOLS="memcheck cachegrind callgrind helgrind drd massif dhat lackey none"
+EXP_TOOLS="exp-bbv exp-dhat exp-sgcheck"
+
+GDB_BIN=@bindir@/gdb
+cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN}
+
+arch=`arch`
+if [ "$arch" = "aarch64" ]; then
+ echo "Aarch64: Hide valgrind tests that result in defunct process and then out of memory"
+ for i in `cat remove-for-aarch64`; do
+ mv $i.vgtest $i.IGNORE;
+ done
+fi
+
+cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \
+ --valgrind=${VALGRIND_BIN} \
+ --valgrind-lib=${VALGRIND_LIB} \
+ --yocto-ptest \
+ gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
+ 2>&1|tee ${LOG}
+
+cd ${VALGRIND_LIB}/ptest && \
+ ./tests/post_regtest_checks $(pwd) \
+ gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
+ 2>&1|tee -a ${LOG}
+
+if [ "$arch" = "aarch64" ]; then
+ echo "Aarch64: Restore valgrind tests that result in defunct process and then out of memory"
+ for i in `cat remove-for-aarch64`; do
+ mv $i.IGNORE $i.vgtest;
+ done
+fi
-cd ${VALGRINDLIB}/ptest && ./tests/vg_regtest --all \
- --valgrind=/usr/bin/valgrind --valgrind-lib=$VALGRINDLIB \
- --yocto-ptest 2>&1|tee ${LOG}
passed=`grep PASS: ${LOG}|wc -l`
failed=`grep FAIL: ${LOG}|wc -l`
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch b/external/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
new file mode 100644
index 00000000..eea671da
--- /dev/null
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch
@@ -0,0 +1,19 @@
+s390x_vec_op_t is not needed anywhere, only elements of enum are accessed
+removing it ensures that valgrind can be built with -fno-common option
+
+Fixes
+ld: ../../VEX/libvex-amd64-linux.a(libvex_amd64_linux_a-guest_s390_helpers.o):/usr/src/debug/valgrind/3.15.0-r0/build/VEX/../../valgrind-3.15.0/VEX/priv/guest_s390_defs.h:289: multiple definition of `s390x_vec_op_t'; ../../VEX/libvexmultiarch-amd64-linux.a(libvexmultiarch_amd64_linux_a-multiarch_main_main.o):/usr/src/debug/valgrind/3.15.0-r0/build/VEX/../../valgrind-3.15.0/VEX/priv/guest_s390_defs.h:289: first defined here
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/VEX/priv/guest_s390_defs.h
++++ b/VEX/priv/guest_s390_defs.h
+@@ -286,7 +286,7 @@ enum {
+ S390_VEC_OP_VFCHE = 18,
+ S390_VEC_OP_VFTCI = 19,
+ S390_VEC_OP_LAST = 20 // supposed to be the last element in enum
+-} s390x_vec_op_t;
++};
+
+ /* Arguments of s390x_dirtyhelper_vec_op(...) which are packed into one
+ ULong variable.
diff --git a/external/poky/meta/recipes-devtools/valgrind/valgrind_3.14.0.bb b/external/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index 50f8221e..a764d181 100644
--- a/external/poky/meta/recipes-devtools/valgrind/valgrind_3.14.0.bb
+++ b/external/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -7,15 +7,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://include/valgrind.h;beginline=1;endline=56;md5=ad3b317f3286b6b704575d9efe6ca5df \
file://COPYING.DOCS;md5=24ea4c7092233849b4394699333b5c56"
-X11DEPENDS = "virtual/libx11"
-DEPENDS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
+DEPENDS = " \
${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} \
"
-SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
+SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://fixed-perl-path.patch \
file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
file://run-ptest \
+ file://remove-for-aarch64 \
file://0004-Fix-out-of-tree-builds.patch \
file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \
file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
@@ -29,16 +29,23 @@ SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
file://0003-correct-include-directive-path-for-config.h.patch \
file://0004-pth_atfork1.c-Define-error-API-for-musl.patch \
file://0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch \
- file://0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch \
file://0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch \
file://0002-memcheck-x86-Define-__THROW-if-not-defined.patch \
file://0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch \
file://0001-fix-opcode-not-supported-on-mips32-linux.patch \
file://0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch \
file://0001-Make-local-functions-static-to-avoid-assembler-error.patch \
+ file://0001-Return-a-valid-exit_code-from-vg_regtest.patch \
+ file://0001-valgrind-filter_xml_frames-do-not-filter-usr.patch \
+ file://0001-adjust-path-filter-for-2-memcheck-tests.patch \
+ file://s390x_vec_op_t.patch \
+ file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
+ file://0001-tests-Make-pthread_detatch-call-portable-across-plat.patch \
+ file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
+ file://0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch \
"
-SRC_URI[md5sum] = "74175426afa280184b62591b58c671b3"
-SRC_URI[sha256sum] = "037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5"
+SRC_URI[md5sum] = "46e5fbdcbc3502a5976a317a0860a975"
+SRC_URI[sha256sum] = "417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1"
UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'
@@ -56,14 +63,17 @@ COMPATIBLE_HOST_linux-muslx32 = 'null'
COMPATIBLE_HOST_mipsarchr6 = 'null'
COMPATIBLE_HOST_linux-gnun32 = 'null'
-inherit autotools ptest multilib_header
+# Disable for powerpc64 with musl
+COMPATIBLE_HOST_libc-musl_powerpc64 = 'null'
+
+# brokenseip is unfortunately required by ptests to pass
+inherit autotools-brokensep ptest multilib_header
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}"
-TARGET_CC_ARCH_remove_arm = "${@get_mcpu(d)}"
EXTRA_OEMAKE = "-w"
@@ -75,14 +85,6 @@ CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
# which fixes build path issue in DWARF.
SELECTED_OPTIMIZATION = "${DEBUG_FLAGS}"
-def get_mcpu(d):
- for arg in (d.getVar('TUNE_CCARGS') or '').split():
- if arg.startswith('-mcpu='):
- return arg
- else:
- continue
- return ""
-
do_configure_prepend () {
rm -rf ${S}/config.h
sed -i -e 's:$(abs_top_builddir):$(pkglibdir)/ptest:g' ${S}/none/tests/Makefile.am
@@ -94,8 +96,6 @@ do_install_append () {
oe_multilib_header valgrind/config.h
}
-TUNE = "${@strip_mcpu(d)}"
-
VALGRINDARCH ?= "${TARGET_ARCH}"
VALGRINDARCH_aarch64 = "arm64"
VALGRINDARCH_x86-64 = "amd64"
@@ -115,12 +115,17 @@ RDEPENDS_${PN} += "perl"
# redirect functions like strlen.
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
-RDEPENDS_${PN}-ptest += " sed perl perl-module-file-glob"
+RDEPENDS_${PN}-ptest += " bash coreutils file \
+ gdb libgomp \
+ perl \
+ perl-module-getopt-long perl-module-file-basename perl-module-file-glob \
+ procps sed ${PN}-dbg ${PN}-src"
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"
do_compile_ptest() {
oe_runmake check
@@ -139,11 +144,23 @@ do_install_ptest() {
for parent_dir in ${S} ${B} ; do
cd $parent_dir
- # exclude shell or the package won't install
- rm -rf none/tests/shell* 2>/dev/null
-
- subdirs="tests cachegrind/tests callgrind/tests drd/tests helgrind/tests massif/tests memcheck/tests none/tests"
-
+ subdirs=" \
+ .in_place \
+ cachegrind/tests \
+ callgrind/tests \
+ dhat/tests \
+ drd/tests \
+ gdbserver_tests \
+ helgrind/tests \
+ lackey/tests \
+ massif/tests \
+ memcheck/tests \
+ none/tests \
+ tests \
+ exp-bbv/tests \
+ exp-dhat/tests \
+ exp-sgcheck/tests \
+ "
# Get the vg test scripts, filters, and expected files
for dir in $subdirs ; do
find $dir | cpio -pvdu ${D}${PTEST_PATH}
@@ -151,18 +168,63 @@ do_install_ptest() {
cd $saved_dir
done
- # clean out build artifacts before building the rpm
+ # The scripts reference config.h so add it to the top ptest dir.
+ cp ${B}/config.h ${D}${PTEST_PATH}
+ install -D ${WORKDIR}/remove-for-aarch64 ${D}${PTEST_PATH}
+
+ # Add an executable need by none/tests/bigcode
+ mkdir ${D}${PTEST_PATH}/perf
+ cp ${B}/perf/bigcode ${D}${PTEST_PATH}/perf
+
+ # Add an executable needed by memcheck/tests/vcpu_bz2
+ cp ${B}/perf/bz2 ${D}${PTEST_PATH}/perf
+
+ # Make the ptest dir look like the top level valgrind src dir
+ # This is checked by the gdbserver_tests/make_local_links script
+ mkdir ${D}${PTEST_PATH}/coregrind
+ cp ${B}/coregrind/vgdb ${D}${PTEST_PATH}/coregrind
+
+ # Add an executable needed by massif tests
+ cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
+
find ${D}${PTEST_PATH} \
- \( -name "Makefile*" \
+ \( \
+ -name "Makefile*" \
-o -name "*.o" \
- -o -name "*.c" \
- -o -name "*.S" \
- -o -name "*.h" \) \
+ \) \
-exec rm {} \;
- # needed by massif tests
- cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
+ # These files need to be newer so touch them.
+ touch ${D}${PTEST_PATH}/cachegrind/tests/a.c -r ${D}${PTEST_PATH}/cachegrind/tests/cgout-test
+
+ # find *_annotate in ${bindir} for yocto build
+ sed -i s:\.\./\.\./cachegrind/cg_annotate:${bindir}/cg_annotate: ${D}${PTEST_PATH}/cachegrind/tests/ann1.vgtest
+ sed -i s:\.\./\.\./cachegrind/cg_annotate:${bindir}/cg_annotate: ${D}${PTEST_PATH}/cachegrind/tests/ann2.vgtest
+
+ sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann1.vgtest
+ sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann2.vgtest
# handle multilib
sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+ sed -i s:@bindir@:${bindir}:g ${D}${PTEST_PATH}/run-ptest
+
+ # This test fails on the host as well, using both 3.15 and git master (as of Jan 24 2020)
+ # https://bugs.kde.org/show_bug.cgi?id=402833
+ rm ${D}${PTEST_PATH}/memcheck/tests/overlap.vgtest
+
+ # As the binary isn't stripped or debug-splitted, the source file isn't fetched
+ # via dwarfsrcfiles either, so it needs to be installed manually.
+ mkdir -p ${D}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/${BP}/none/tests/
+ install ${S}/none/tests/tls.c ${D}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/${BP}/none/tests/
}
+
+# avoid stripping some generated binaries otherwise some of the tests will fail
+# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
+INHIBIT_PACKAGE_STRIP_FILES = "\
+ ${PKGD}${PTEST_PATH}/none/tests/tls \
+ ${PKGD}${PTEST_PATH}/none/tests/tls.so \
+ ${PKGD}${PTEST_PATH}/none/tests/tls2.so \
+ ${PKGD}${PTEST_PATH}/helgrind/tests/tc09_bad_unlock \
+ ${PKGD}${PTEST_PATH}/memcheck/tests/manuel1 \
+ ${PKGD}${PTEST_PATH}/drd/tests/pth_detached3 \
+"