diff options
Diffstat (limited to 'external/poky/meta/recipes-devtools/valgrind')
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 \ +" |