diff options
Diffstat (limited to 'meta-agl-profile-core/recipes-devtools/valgrind')
25 files changed, 1651 insertions, 0 deletions
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch new file mode 100644 index 000000000..a78e1953f --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch @@ -0,0 +1,51 @@ +From 9762fd23e1f1db66d4b977c694a17d3bca3fe99a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Fri, 8 Jan 2016 16:36:29 +0200 +Subject: [PATCH] Remove tests that fail to build on some PPC32 configurations + +Failures are documented here: +http://errors.yoctoproject.org/Errors/Search/?items=10&query=862d702fbb99e484631315aa44b9e46f8fc567da&filter=valgrind&type=recipe + +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +Upstream-Status: Pending +--- + memcheck/tests/ppc32/Makefile.am | 2 +- + none/tests/ppc32/Makefile.am | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/memcheck/tests/ppc32/Makefile.am b/memcheck/tests/ppc32/Makefile.am +index 26b95a2..8f05743 100644 +--- a/memcheck/tests/ppc32/Makefile.am ++++ b/memcheck/tests/ppc32/Makefile.am +@@ -10,7 +10,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ + power_ISA2_07.stderr.exp power_ISA2_07.vgtest + + check_PROGRAMS = \ +- power_ISA2_05 power_ISA2_07 ++ power_ISA2_07 + + power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \ + -I$(top_srcdir)/include @FLAG_M32@ +diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am +index 196239e..0fe3425 100644 +--- a/none/tests/ppc32/Makefile.am ++++ b/none/tests/ppc32/Makefile.am +@@ -50,13 +50,13 @@ EXTRA_DIST = \ + + check_PROGRAMS = \ + allexec \ +- lsw jm-insns round \ ++ lsw \ + test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 \ + test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \ + test_isa_2_07_part1 test_isa_2_07_part2 \ + test_tm test_touch_tm ldst_multiple data-cache-instructions \ + test_fx test_gx \ +- testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp \ ++ twi tw xlc_dbl_u32 power6_bcmp \ + bug129390-ppc32 bug139050-ppc32 \ + ldstrev mftocrf mcrfs + +-- +2.6.4 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch new file mode 100644 index 000000000..9f1da7bac --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch @@ -0,0 +1,108 @@ +From 715cf122388f3527afa5649cebf9f1522c240693 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 20 Apr 2017 10:11:16 -0700 +Subject: [PATCH] makefiles: Drop setting -mcpu to cortex-a8 on arm + architecture + +We can not assume that all arches armv7+ are cortex-a8 only +it fails to build for rpi which is armv7ve based (cortex-a8) cpu +implementation. +Fixes +| cc1: warning: switch -mcpu=cortex-a8 conflicts with -march=armv7ve switch + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile.all.am | 6 +++--- + helgrind/tests/Makefile.am | 6 +++--- + none/tests/arm/Makefile.am | 18 +++++++++--------- + 3 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/Makefile.all.am b/Makefile.all.am +index 02059a3..c7c4700 100644 +--- a/Makefile.all.am ++++ b/Makefile.all.am +@@ -197,11 +197,11 @@ AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g + + AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@ + AM_CFLAGS_ARM_LINUX = @FLAG_M32@ \ +- $(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8 ++ $(AM_CFLAGS_BASE) -marm + AM_CFLAGS_PSO_ARM_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE) \ +- -marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE) ++ -marm $(AM_CFLAGS_PSO_BASE) + AM_CCASFLAGS_ARM_LINUX = @FLAG_M32@ \ +- -marm -mcpu=cortex-a8 -g ++ -marm -g + + AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@ + AM_CFLAGS_ARM64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE) +diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am +index df82169..07eb66a 100644 +--- a/helgrind/tests/Makefile.am ++++ b/helgrind/tests/Makefile.am +@@ -189,9 +189,9 @@ if ! VGCONF_PLATFORMS_INCLUDE_X86_DARWIN + endif + + if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX +-annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8 +-tc07_hbl1_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8 +-tc08_hbl2_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8 ++annotate_hbefore_CFLAGS = $(AM_CFLAGS) ++tc07_hbl1_CFLAGS = $(AM_CFLAGS) ++tc08_hbl2_CFLAGS = $(AM_CFLAGS) + else + annotate_hbefore_CFLAGS = $(AM_CFLAGS) + tc07_hbl1_CFLAGS = $(AM_CFLAGS) +diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am +index 024eb6d..ccecb90 100644 +--- a/none/tests/arm/Makefile.am ++++ b/none/tests/arm/Makefile.am +@@ -52,10 +52,10 @@ allexec_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@ + # need special helping w.r.t -mfpu and -mfloat-abi, though. + # Also force -O0 since -O takes hundreds of MB of memory + # for v6intThumb.c. +-v6intARM_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -marm +-v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb ++v6intARM_CFLAGS = $(AM_CFLAGS) -g -O0 -marm ++v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mthumb + +-v6media_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb ++v6media_CFLAGS = $(AM_CFLAGS) -g -O0 -mthumb + + v8crypto_a_CFLAGS = $(AM_CFLAGS) -g -O0 -mfpu=crypto-neon-fp-armv8 -marm + v8crypto_t_CFLAGS = $(AM_CFLAGS) -g -O0 -mfpu=crypto-neon-fp-armv8 -mthumb +@@ -65,23 +65,23 @@ v8memory_a_CFLAGS = $(AM_CFLAGS) -g -O0 \ + v8memory_t_CFLAGS = $(AM_CFLAGS) -g -O0 \ + -march=armv8-a -mfpu=crypto-neon-fp-armv8 -mthumb + +-vfp_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \ ++vfp_CFLAGS = $(AM_CFLAGS) -g -O0 \ + -mfpu=neon \ + -mthumb + + +-neon128_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \ ++neon128_CFLAGS = $(AM_CFLAGS) -g -O0 \ + -mfpu=neon \ + -mthumb + +-neon64_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \ ++neon64_CFLAGS = $(AM_CFLAGS) -g -O0 \ + -mfpu=neon \ + -mthumb + + intdiv_CFLAGS = $(AM_CFLAGS) -g -march=armv7ve -mcpu=cortex-a15 -mthumb +-ldrt_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb +-ldrt_arm_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm ++ldrt_CFLAGS = $(AM_CFLAGS) -g -mthumb ++ldrt_arm_CFLAGS = $(AM_CFLAGS) -g -marm + +-vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mfpu=vfpv3 ++vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mfpu=vfpv3 + + vfpv4_fma_CFLAGS = $(AM_CFLAGS) -g -O0 -march=armv7ve -mcpu=cortex-a15 -mfpu=vfpv4 -marm +-- +2.12.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch new file mode 100644 index 000000000..a48d7db07 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch @@ -0,0 +1,32 @@ +From 3409dc35c15bb14c8a525239806322648e079ab1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 5 Jul 2017 17:12:43 -0700 +Subject: [PATCH 1/3] memcheck/arm64: Define __THROW if not already defined + +Helps compiling with musl where __THROW is not available + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Submitted + + memcheck/tests/arm64-linux/scalar.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/memcheck/tests/arm64-linux/scalar.h b/memcheck/tests/arm64-linux/scalar.h +index 9008816..8ef050f 100644 +--- a/memcheck/tests/arm64-linux/scalar.h ++++ b/memcheck/tests/arm64-linux/scalar.h +@@ -12,6 +12,10 @@ + #include <sys/types.h> + #include <sys/mman.h> + ++#ifndef __THROW ++#define __THROW ++#endif ++ + // Since we use vki_unistd.h, we can't include <unistd.h>. So we have to + // declare this ourselves. + extern long int syscall (long int __sysno, ...) __THROW; +-- +2.13.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Use-ucontext_t-instead-of-struct-ucon.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Use-ucontext_t-instead-of-struct-ucon.patch new file mode 100644 index 000000000..bf16a1adf --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Use-ucontext_t-instead-of-struct-ucon.patch @@ -0,0 +1,30 @@ +From 629ac492b1d9bc709d17337eb9b1c28603eca250 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 28 Jun 2017 11:01:25 -0700 +Subject: [PATCH] memcheck/tests: Use ucontext_t instead of struct ucontext + +glibc 2.26 does not expose struct ucontext anymore + +Upstream-Status: Submitted [https://bugs.kde.org/show_bug.cgi?id=381769] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + memcheck/tests/linux/stack_changes.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c +index ffb49c6..acc4109 100644 +--- a/memcheck/tests/linux/stack_changes.c ++++ b/memcheck/tests/linux/stack_changes.c +@@ -11,7 +11,7 @@ + // checks that Valgrind notices their stack changes properly. + + #ifdef __GLIBC__ +-typedef struct ucontext mycontext; ++typedef ucontext_t mycontext; + + mycontext ctx1, ctx2, oldc; + int count; +-- +2.13.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch new file mode 100644 index 000000000..27366153f --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch @@ -0,0 +1,31 @@ +From 64ad2744acfb4fa40b1c114633a053f87125a203 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 10 Jun 2017 00:46:39 -0700 +Subject: [PATCH 1/6] sigqueue: Rename _sifields to __si_fields on musl + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + memcheck/tests/linux/sigqueue.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/memcheck/tests/linux/sigqueue.c b/memcheck/tests/linux/sigqueue.c +index d18bd72..acb7cba 100644 +--- a/memcheck/tests/linux/sigqueue.c ++++ b/memcheck/tests/linux/sigqueue.c +@@ -8,6 +8,11 @@ + #include <syscall.h> + #include <unistd.h> + ++/* musl libc defines siginfo_t __si_fields instead of _sifields */ ++#if defined(__linux__) && !defined(__GLIBC__) ++#define _sifields __si_fields ++#endif ++ + int main(int argc, char **argv) + { + siginfo_t *si; +-- +2.13.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch new file mode 100644 index 000000000..185b8f9e6 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch @@ -0,0 +1,39 @@ +From de692e359801a1f0488c76267e4f904dd2efe754 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 10 Jun 2017 00:39:07 -0700 +Subject: [PATCH] str_tester.c: Limit rawmemchr() test to glibc + +rawmemchr() is a GNU extention therefore mark it so + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + memcheck/tests/str_tester.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/memcheck/tests/str_tester.c b/memcheck/tests/str_tester.c +index 9f7790a..47e4b4a 100644 +--- a/memcheck/tests/str_tester.c ++++ b/memcheck/tests/str_tester.c +@@ -504,7 +504,7 @@ test_strchrnul (void) + #endif + + // DDD: better done by testing for the function. +-#if !defined(__APPLE__) && !defined(__sun) ++#if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__) + static void + test_rawmemchr (void) + { +@@ -1442,7 +1442,7 @@ main (void) + test_strchrnul (); + # endif + +-# if !defined(__APPLE__) && !defined(__sun) ++# if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__) + /* rawmemchr. */ + test_rawmemchr (); + # endif +-- +2.13.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch new file mode 100644 index 000000000..ccf404d0d --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch @@ -0,0 +1,47 @@ +From 862b807076d57f2f58ed9d572ddac8bb402774a2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 10 Jun 2017 01:01:10 -0700 +Subject: [PATCH 2/6] context APIs are not available on musl + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + memcheck/tests/linux/stack_changes.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c +index a978fc2..ffb49c6 100644 +--- a/memcheck/tests/linux/stack_changes.c ++++ b/memcheck/tests/linux/stack_changes.c +@@ -10,6 +10,7 @@ + // This test is checking the libc context calls (setcontext, etc.) and + // checks that Valgrind notices their stack changes properly. + ++#ifdef __GLIBC__ + typedef ucontext_t mycontext; + + mycontext ctx1, ctx2, oldc; +@@ -51,9 +52,11 @@ int init_context(mycontext *uc) + + return ret; + } ++#endif + + int main(int argc, char **argv) + { ++#ifdef __GLIBC__ + int c1 = init_context(&ctx1); + int c2 = init_context(&ctx2); + +@@ -66,6 +69,8 @@ int main(int argc, char **argv) + //free(ctx1.uc_stack.ss_sp); + VALGRIND_STACK_DEREGISTER(c2); + //free(ctx2.uc_stack.ss_sp); +- ++#else ++ printf("libc context call APIs e.g. getcontext() are deprecated by posix\n"); ++#endif + return 0; + } + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-memcheck-x86-Define-__THROW-if-not-defined.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-memcheck-x86-Define-__THROW-if-not-defined.patch new file mode 100644 index 000000000..543347229 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-memcheck-x86-Define-__THROW-if-not-defined.patch @@ -0,0 +1,32 @@ +From 67d199dbdcbb3feff5f8928f87725fc64c0307d7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 5 Jul 2017 17:36:42 -0700 +Subject: [PATCH 2/3] memcheck/x86: Define __THROW if not defined + +musl does not have __THROW, therefore make it null + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Submitted + + memcheck/tests/x86-linux/scalar.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/memcheck/tests/x86-linux/scalar.h b/memcheck/tests/x86-linux/scalar.h +index ef28b03..52f742e 100644 +--- a/memcheck/tests/x86-linux/scalar.h ++++ b/memcheck/tests/x86-linux/scalar.h +@@ -11,6 +11,10 @@ + #include <sys/types.h> + #include <sys/mman.h> + ++#ifndef __THROW ++#define __THROW ++#endif ++ + // Since we use vki_unistd.h, we can't include <unistd.h>. So we have to + // declare this ourselves. + extern long int syscall (long int __sysno, ...) __THROW; +-- +2.13.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-remove-rpath.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-remove-rpath.patch new file mode 100644 index 000000000..e9112da0c --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-remove-rpath.patch @@ -0,0 +1,35 @@ +From f96cf1f4eaa72860ab8b5e18ad10fdc704d78c5f Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 15 Dec 2015 15:01:34 +0200 +Subject: [PATCH 2/5] remove rpath + +Upstream-Status: Inappropriate [embedded config] +Signed-off-by: Saul Wold <sgw@linux.intel.com> +--- + none/tests/Makefile.am | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/none/tests/Makefile.am b/none/tests/Makefile.am +index 54f2a7e..25b0f49 100644 +--- a/none/tests/Makefile.am ++++ b/none/tests/Makefile.am +@@ -326,7 +326,6 @@ threadederrno_CFLAGS += --std=c99 + endif + tls_SOURCES = tls.c tls2.c + tls_DEPENDENCIES = tls.so tls2.so +-tls_LDFLAGS = -Wl,-rpath,$(abs_top_builddir)/none/tests + tls_LDADD = tls.so tls2.so -lpthread + tls_so_SOURCES = tls_so.c + tls_so_DEPENDENCIES = tls2.so +@@ -334,7 +333,7 @@ if VGCONF_OS_IS_DARWIN + tls_so_LDFLAGS = -dynamic -dynamiclib -all_load -fpic + tls_so_LDADD = `pwd`/tls2.so + else +- tls_so_LDFLAGS = -Wl,-rpath,$(abs_top_builddir)/none/tests -shared -fPIC ++ tls_so_LDFLAGS = -shared -fPIC + tls_so_LDADD = tls2.so + endif + tls_so_CFLAGS = $(AM_CFLAGS) -fPIC +-- +2.6.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-correct-include-directive-path-for-config.h.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-correct-include-directive-path-for-config.h.patch new file mode 100644 index 000000000..c2965c40d --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-correct-include-directive-path-for-config.h.patch @@ -0,0 +1,45 @@ +From ecbdea7bd8b08205f1bc3f6b72d4b4a80f313fcb Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 10 Jun 2017 01:03:17 -0700 +Subject: [PATCH 3/6] correct include directive path for config.h + +when building out of source tree, it can not find +the generated config.h otherwise + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + memcheck/tests/linux/syscalls-2007.c | 2 +- + memcheck/tests/linux/syslog-syscall.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/memcheck/tests/linux/syscalls-2007.c b/memcheck/tests/linux/syscalls-2007.c +index b61c6d5..cc3fd62 100644 +--- a/memcheck/tests/linux/syscalls-2007.c ++++ b/memcheck/tests/linux/syscalls-2007.c +@@ -10,7 +10,7 @@ + + #define _GNU_SOURCE + +-#include "../../config.h" ++#include "config.h" + #include <fcntl.h> + #include <signal.h> + #include <stdint.h> +diff --git a/memcheck/tests/linux/syslog-syscall.c b/memcheck/tests/linux/syslog-syscall.c +index 1143722..21e758b 100644 +--- a/memcheck/tests/linux/syslog-syscall.c ++++ b/memcheck/tests/linux/syslog-syscall.c +@@ -6,7 +6,7 @@ + * klogctl(). + */ + +-#include "../../config.h" ++#include "config.h" + #include <stdio.h> + #if defined(HAVE_SYS_KLOG_H) + #include <sys/klog.h> +-- +2.13.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch new file mode 100644 index 000000000..fa1344c85 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch @@ -0,0 +1,68 @@ +From d103475875858ab8a2e6b53ce178bb2f63883d4c Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 5 Jul 2017 17:37:56 -0700 +Subject: [PATCH 3/3] tests/seg_override: Replace __modify_ldt() with syscall() + +__modify_ldt() is specific to glibc, replacing it with syscall() +makes it more portable. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Submitted + + none/tests/x86-linux/seg_override.c | 15 ++++++--------- + 1 file changed, 6 insertions(+), 9 deletions(-) + +diff --git a/none/tests/x86-linux/seg_override.c b/none/tests/x86-linux/seg_override.c +index b7619c9..c89874b 100644 +--- a/none/tests/x86-linux/seg_override.c ++++ b/none/tests/x86-linux/seg_override.c +@@ -2,6 +2,8 @@ + #include <stdio.h> + #include <errno.h> + #include <string.h> ++#include <unistd.h> ++#include <syscall.h> + + /* Stuff from Wine. */ + +@@ -52,14 +54,11 @@ inline static unsigned int wine_ldt_get_limit( const LDT_ENTRY *ent ) + /* our copy of the ldt */ + LDT_ENTRY ldt_copy[8192]; + +-/* System call to set LDT entry. */ +-//extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t); +-extern int __modify_ldt (int, void *, size_t); +- + void print_ldt ( void ) + { + int res; +- res = __modify_ldt( 0, ldt_copy, 8192*sizeof(LDT_ENTRY) ); ++ /* System call to set LDT entry. */ ++ res = syscall(SYS_modify_ldt, 0, ldt_copy, 8192*sizeof(LDT_ENTRY) ); + printf("got %d bytes\n", res ); + perror("error is"); + } +@@ -83,9 +82,6 @@ struct modify_ldt_ldt_s + unsigned int empty:25; + }; + +-/* System call to set LDT entry. */ +-//extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t); +- + void set_ldt1 ( void* base ) + { + int stat; +@@ -102,7 +98,8 @@ void set_ldt1 ( void* base ) + ldt_entry.read_exec_only = 0; + ldt_entry.limit_in_pages = 0; + ldt_entry.seg_not_present = 0; +- stat = __modify_ldt (1, &ldt_entry, sizeof (ldt_entry)); ++ /* System call to set LDT entry. */ ++ stat = syscall(SYS_modify_ldt, 1, &ldt_entry, sizeof (ldt_entry)); + printf("stat = %d\n", stat); + } + +-- +2.13.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch new file mode 100644 index 000000000..e3b03c95c --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch @@ -0,0 +1,189 @@ +From 739421e253e6eba3eb6438651822f80fa9c0502a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 15 Dec 2015 15:31:50 +0200 +Subject: [PATCH 1/2] Fix out of tree builds. + +The paths to these files need to be fully specified in +the out of tree build case. glibc-2.X.supp is a generated file so the full path +is deliberately not specified in that case. + +RP 2013/03/23 + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + configure.ac | 68 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 34 insertions(+), 34 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 3874296fde0b..7a5ba2c8557e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -373,50 +373,50 @@ case "${host_os}" in + 9.*) + AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}" + ;; + 10.*) + AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + 11.*) + AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + 12.*) + AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + 13.*) + AC_MSG_RESULT([Darwin 13.x (${kernel}) / Mac OS X 10.9 Mavericks]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_9, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin13.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin13.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + 14.*) + AC_MSG_RESULT([Darwin 14.x (${kernel}) / Mac OS X 10.10 Yosemite]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_10, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin14.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin14.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + 15.*) + AC_MSG_RESULT([Darwin 15.x (${kernel}) / Mac OS X 10.11 El Capitan]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_11, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin15.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin15.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + 16.*) + AC_MSG_RESULT([Darwin 16.x (${kernel}) / macOS 10.12 Sierra]) + AC_DEFINE([DARWIN_VERS], DARWIN_10_12, [Darwin / Mac OS X version]) +- DEFAULT_SUPP="darwin16.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin16.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}" + ;; + *) + AC_MSG_RESULT([unsupported (${kernel})]) +@@ -457,10 +457,10 @@ case "${host_os}" in + uname_v=$( uname -v ) + case "$uname_v" in + 11.4.*) +- DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/solaris12.supp ${DEFAULT_SUPP}" + ;; + *) +- DEFAULT_SUPP="solaris11.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/solaris11.supp ${DEFAULT_SUPP}" + ;; + esac + ;; +@@ -468,7 +468,7 @@ case "${host_os}" in + solaris2.12*) + AC_MSG_RESULT([ok (${host_os})]) + VGCONF_OS="solaris" +- DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/solaris12.supp ${DEFAULT_SUPP}" + ;; + + *) +@@ -982,29 +982,29 @@ AC_MSG_CHECKING([the glibc version]) + case "${GLIBC_VERSION}" in + 2.2) + AC_MSG_RESULT(${GLIBC_VERSION} family) +- DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.2.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}" + ;; + 2.[[3-6]]) + AC_MSG_RESULT(${GLIBC_VERSION} family) +- DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ++ 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-drd.supp ${DEFAULT_SUPP}" + ;; + 2.[[7-9]]) + AC_MSG_RESULT(${GLIBC_VERSION} family) + DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}" + ;; + 2.10|2.11) + AC_MSG_RESULT(${GLIBC_VERSION} family) + 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="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}" + ;; + 2.*) + AC_MSG_RESULT(${GLIBC_VERSION} family) +@@ -1013,8 +1013,8 @@ 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="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}" + ;; + darwin) + AC_MSG_RESULT(Darwin) +@@ -1024,7 +1024,7 @@ case "${GLIBC_VERSION}" in + bionic) + AC_MSG_RESULT(Bionic) + AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic]) +- DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/bionic.supp ${DEFAULT_SUPP}" + ;; + solaris) + AC_MSG_RESULT(Solaris) +@@ -1051,11 +1051,11 @@ if test "$VGCONF_OS" != "solaris"; then + # attempt to detect whether such libraries are installed on the + # build machine (or even if any X facilities are present); just + # add the suppressions antidisirregardless. +- DEFAULT_SUPP="xfree-4.supp ${DEFAULT_SUPP}" +- DEFAULT_SUPP="xfree-3.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/xfree-4.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/xfree-3.supp ${DEFAULT_SUPP}" + + # Add glibc and X11 suppressions for exp-sgcheck +- DEFAULT_SUPP="exp-sgcheck.supp ${DEFAULT_SUPP}" ++ DEFAULT_SUPP="$srcdir/exp-sgcheck.supp ${DEFAULT_SUPP}" + fi + + +-- +2.13.2.3.g44cd85c14 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch new file mode 100644 index 000000000..1cb706254 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch @@ -0,0 +1,37 @@ +From fb77fef4f866dac7bcc6d1ae025da60564869f84 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 10 Jun 2017 01:06:11 -0700 +Subject: [PATCH 4/6] pth_atfork1.c: Define error() API for musl + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + none/tests/pth_atfork1.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/none/tests/pth_atfork1.c b/none/tests/pth_atfork1.c +index 34201ef..b7f5f2d 100644 +--- a/none/tests/pth_atfork1.c ++++ b/none/tests/pth_atfork1.c +@@ -18,7 +18,7 @@ + Boston, MA 02111-1307, USA. */ + + #include <errno.h> +-#if !defined(__APPLE__) && !defined(__sun) ++#if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__) + # include <error.h> + #endif + #include <stdlib.h> +@@ -27,7 +27,7 @@ + #include <sys/wait.h> + #include <stdio.h> + +-#if defined(__APPLE__) || defined(__sun) ++#if defined(__APPLE__) || defined(__sun) || (defined(__linux__) && !defined(__GLIBC__)) + #include <string.h> /* strerror */ + static void error (int status, int errnum, char* msg) + { +-- +2.13.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch new file mode 100644 index 000000000..7985308e4 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch @@ -0,0 +1,252 @@ +From f49f27f1bc67d07440b0ac9a7d767a8ea1589bfe Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 15 Dec 2015 15:50:44 +0200 +Subject: [PATCH 5/5] Modify vg_test wrapper to support PTEST formats + +Change the valgrind regression test script vg_regtest to +support the yocto ptest stdout reporting format. The commit adds +'--yocto-ptest' as an optional argument to vg_regtest, which alters +the output to use the ptest infrastructure reporting format: + "[PASS|SKIP|FAIL]: testname" +instead of valgrind's internal test reporting format. Without the added +option, --yocto-ptest, the valgrind regression test output is unchanged. + +Enforce 30 seconds limit for the test. +This resume execution of the remaining tests when valgrind hangs. + +Upstream-Status: Pending + +Signed-off-by: Dave Lerner <dave.lerner@windriver.com> +Signed-off-by: Tudor Florea <tudor.florea@enea.com> +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + tests/vg_regtest.in | 75 +++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 55 insertions(+), 20 deletions(-) + +diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in +index a441f42..cb05b52 100755 +--- a/tests/vg_regtest.in ++++ b/tests/vg_regtest.in +@@ -47,6 +47,7 @@ + # --loop-till-fail: loops on the test(s) till one fail, then exit + # This is useful to obtain detailed trace or --keep-unfiltered + # output of a non deterministic test failure ++# --yocto-ptest: output in yocto ptest format + # + # The easiest way is to run all tests in valgrind/ with (assuming you installed + # in $PREFIX): +@@ -139,7 +140,7 @@ my $usage="\n" + . "Usage:\n" + . " vg_regtest [--all, --valgrind, --valgrind-lib, --keep-unfiltered\n" + . " --outer-valgrind, --outer-tool, --outer-args\n" +- . " --loop-till-fail]\n" ++ . " --loop-till-fail, --yocto-ptest]\n" + . " Use EXTRA_REGTEST_OPTS to supply extra args for all tests\n" + . "\n"; + +@@ -186,6 +187,7 @@ my $outer_args; + my $valgrind_lib = "$tests_dir/.in_place"; + my $keepunfiltered = 0; + my $looptillfail = 0; ++my $yoctoptest = 0; + + # default filter is the one named "filter_stderr" in the test's directory + my $default_stderr_filter = "filter_stderr"; +@@ -244,6 +246,8 @@ sub process_command_line() + $keepunfiltered = 1; + } elsif ($arg =~ /^--loop-till-fail$/) { + $looptillfail = 1; ++ } elsif ($arg =~ /^--yocto-ptest$/) { ++ $yoctoptest = 1; + } else { + die $usage; + } +@@ -365,13 +369,28 @@ sub read_vgtest_file($) + #---------------------------------------------------------------------------- + # Since most of the program time is spent in system() calls, need this to + # propagate a Ctrl-C enabling us to quit. +-sub mysystem($) ++# Enforce 30 seconds limit for the test. ++# This resume execution of the remaining tests if valgrind hangs. ++sub mysystem($) + { +- my $exit_code = system($_[0]); +- ($exit_code == 2) and exit 1; # 2 is SIGINT +- return $exit_code; ++ my $exit_code=0; ++ eval { ++ local $SIG{'ALRM'} = sub { die "timed out\n" }; ++ alarm(30); ++ $exit_code = system($_[0]); ++ alarm (0); ++ ($exit_code == 2) and die "SIGINT\n"; # 2 is SIGINT ++ }; ++ if ($@) { ++ if ($@ eq "timed out\n") { ++ print "timed out\n"; ++ return 1; ++ } ++ if ($@ eq "SIGINT\n") { ++ exit 1; ++ } ++ } + } +- + # if $keepunfiltered, copies $1 to $1.unfiltered.out + # renames $0 tp $1 + sub filtered_rename($$) +@@ -419,23 +438,25 @@ sub do_diffs($$$$) + # A match; remove .out and any previously created .diff files. + unlink("$name.$mid.out"); + unlink(<$name.$mid.diff*>); +- return; ++ return 0; + } + } + } + # If we reach here, none of the .exp files matched. +- print "*** $name failed ($mid) ***\n"; ++ print "*** $name failed ($mid) ***\n" if ($yoctoptest == 0) ; + push(@failures, sprintf("%-40s ($mid)", "$fullname")); + $num_failures{$mid}++; + if ($looptillfail == 1) { + print "Failure encountered, stopping to loop\n"; + exit 1 + } ++ return 1; + } + + sub do_one_test($$) + { + my ($dir, $vgtest) = @_; ++ my $diffStatus = 0; + $vgtest =~ /^(.*)\.vgtest/; + my $name = $1; + my $fullname = "$dir/$name"; +@@ -454,7 +475,11 @@ sub do_one_test($$) + } elsif (256 == $prereq_res) { + # Nb: weird Perl-ism -- exit code of '1' is seen by Perl as 256... + # Prereq failed, skip. +- printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:"); ++ if ($yoctoptest == 0) { ++ printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:"); ++ } else { ++ printf("SKIP: $fullname\n"); ++ } + return; + } else { + # Bad prereq; abort. +@@ -472,7 +497,7 @@ sub do_one_test($$) + } + # If there is a progB, let's start it in background: + printf("%-16s valgrind $extraopts $vgopts $prog $args (progB: $progB $argsB)\n", +- "$name:"); ++ "$name:") if ($yoctoptest == 0); + # progB.done used to detect child has finished. See below. + # Note: redirection of stdout and stderr is before $progB to allow argsB + # to e.g. redirect stdoutB to stderrB +@@ -488,7 +513,8 @@ sub do_one_test($$) + . "touch progB.done) &"); + } + } else { +- printf("%-16s valgrind $extraopts $vgopts $prog $args\n", "$name:"); ++ printf("%-16s valgrind $extraopts $vgopts $prog $args\n", "$name:") ++ if ($yoctoptest == 0); + } + + # Collect environment variables, if any. +@@ -529,7 +555,7 @@ sub do_one_test($$) + # Find all the .stdout.exp files. If none, use /dev/null. + my @stdout_exps = <$name.stdout.exp*>; + @stdout_exps = ( "/dev/null" ) if (0 == scalar @stdout_exps); +- do_diffs($fullname, $name, "stdout", \@stdout_exps); ++ $diffStatus |= do_diffs($fullname, $name, "stdout", \@stdout_exps); + + # Filter stderr + $stderr_filter_args = $name if (! defined $stderr_filter_args); +@@ -538,7 +564,7 @@ sub do_one_test($$) + # Find all the .stderr.exp files. At least one must exist. + my @stderr_exps = <$name.stderr.exp*>; + (0 != scalar @stderr_exps) or die "Could not find `$name.stderr.exp*'\n"; +- do_diffs($fullname, $name, "stderr", \@stderr_exps); ++ $diffStatus |= do_diffs($fullname, $name, "stderr", \@stderr_exps); + + if (defined $progB) { + # wait for the child to be finished +@@ -562,7 +588,7 @@ sub do_one_test($$) + # Find all the .stdoutB.exp files. If none, use /dev/null. + my @stdoutB_exps = <$name.stdoutB.exp*>; + @stdoutB_exps = ( "/dev/null" ) if (0 == scalar @stdoutB_exps); +- do_diffs($fullname, $name, "stdoutB", \@stdoutB_exps); ++ $diffStatus |= do_diffs($fullname, $name, "stdoutB", \@stdoutB_exps); + + # Filter stderr + $stderrB_filter_args = $name if (! defined $stderrB_filter_args); +@@ -571,7 +597,7 @@ sub do_one_test($$) + # Find all the .stderrB.exp files. At least one must exist. + my @stderrB_exps = <$name.stderrB.exp*>; + (0 != scalar @stderrB_exps) or die "Could not find `$name.stderrB.exp*'\n"; +- do_diffs($fullname, $name, "stderrB", \@stderrB_exps); ++ $diffStatus |= do_diffs($fullname, $name, "stderrB", \@stderrB_exps); + } + + # Maybe do post-test check +@@ -583,7 +609,7 @@ sub do_one_test($$) + # Find all the .post.exp files. If none, use /dev/null. + my @post_exps = <$name.post.exp*>; + @post_exps = ( "/dev/null" ) if (0 == scalar @post_exps); +- do_diffs($fullname, $name, "post", \@post_exps); ++ $diffStatus |= do_diffs($fullname, $name, "post", \@post_exps); + } + } + +@@ -592,6 +618,13 @@ sub do_one_test($$) + print("(cleanup operation failed: $cleanup)\n"); + } + ++ if ($yoctoptest == 1) { ++ if ($diffStatus == 0) { ++ print("PASS: $fullname\n"); ++ } else { ++ print("FAIL: $fullname\n"); ++ } ++ } + $num_tests_done++; + } + +@@ -631,7 +664,7 @@ sub test_one_dir($$) + my $found_tests = (0 != (grep { $_ =~ /\.vgtest$/ } @fs)); + + if ($found_tests) { +- print "-- Running tests in $full_dir $dashes\n"; ++ print "-- Running tests in $full_dir $dashes\n" if ($yoctoptest == 0); + } + foreach my $f (@fs) { + if (-d $f) { +@@ -641,7 +674,7 @@ sub test_one_dir($$) + } + } + if ($found_tests) { +- print "-- Finished tests in $full_dir $dashes\n"; ++ print "-- Finished tests in $full_dir $dashes\n" if ($yoctoptest == 0); + } + + chdir(".."); +@@ -667,10 +700,12 @@ sub summarise_results + $num_failures{"stdout"}, plural($num_failures{"stdout"}), + $num_failures{"stderrB"}, plural($num_failures{"stderrB"}), + $num_failures{"stdoutB"}, plural($num_failures{"stdoutB"}), +- $num_failures{"post"}, plural($num_failures{"post"})); ++ $num_failures{"post"}, plural($num_failures{"post"})) ++ if ($yoctoptest == 0); + + foreach my $failure (@failures) { +- print "$failure\n"; ++ print "$failure\n" ++ if ($yoctoptest == 0); + } + print "\n"; + } +-- +2.6.2 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch new file mode 100644 index 000000000..6176640e4 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch @@ -0,0 +1,30 @@ +From b4b9f072c22f96844e02cb9d68f7ff2408680817 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 10 Jun 2017 01:07:59 -0700 +Subject: [PATCH 5/6] tc20_verifywrap.c: Fake __GLIBC_PREREQ with musl + +similar to sun + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + helgrind/tests/tc20_verifywrap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/helgrind/tests/tc20_verifywrap.c b/helgrind/tests/tc20_verifywrap.c +index c110000..a311a49 100644 +--- a/helgrind/tests/tc20_verifywrap.c ++++ b/helgrind/tests/tc20_verifywrap.c +@@ -20,7 +20,7 @@ + + #if !defined(__APPLE__) + +-#if defined(__sun__) ++#if defined(__sun__) || (defined(__linux__) && !defined(__GLIBC__)) + /* Fake __GLIBC_PREREQ on Solaris. Pretend glibc >= 2.4. */ + # define __GLIBC_PREREQ + #else +-- +2.13.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch new file mode 100644 index 000000000..05886c743 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch @@ -0,0 +1,32 @@ +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/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch new file mode 100644 index 000000000..07774f38a --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch @@ -0,0 +1,96 @@ +From 0bf4b0ac18d1ea41b32ad781d214b295ca1998f3 Mon Sep 17 00:00:00 2001 +From: Aneesh Bansal <aneesh.bansal@freescale.com> +Date: Mon, 21 Nov 2011 17:31:39 +0530 +Subject: [PATCH] Added support for PPC instructions mfatbu, mfatbl. + +Upstream-Status: Pending + +Signed-off-by: Aneesh Bansal <aneesh.bansal@freescale.com> +--- +Currently Valgrind 3.7.0 does not have support for PPC instructions mfatbu and mfatbl. When we run a USDPAA application with VALGRIND, the following error is given by valgrind : +dis_proc_ctl(ppc)(mfspr,SPR)(0x20F) +disInstr(ppc): unhandled instruction: 0x7C0F82A6 + + + VEX/priv/guest_ppc_defs.h | 2 ++ + VEX/priv/guest_ppc_helpers.c | 18 ++++++++++++++++++ + VEX/priv/guest_ppc_toIR.c | 22 ++++++++++++++++++++++ + 3 files changed, 42 insertions(+), 0 deletions(-) + +diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h +index dd3c62e..11a34aa 100644 +--- a/VEX/priv/guest_ppc_defs.h ++++ b/VEX/priv/guest_ppc_defs.h +@@ -146,6 +146,8 @@ extern UInt ppc32g_dirtyhelper_MFSPR_268_269 ( UInt ); + + extern UInt ppc32g_dirtyhelper_MFSPR_287 ( void ); + ++extern UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt ); ++ + extern void ppc32g_dirtyhelper_LVS ( VexGuestPPC32State* gst, + UInt vD_idx, UInt sh, + UInt shift_right ); +diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c +index 11aa428..b49ea3f 100644 +--- a/VEX/priv/guest_ppc_helpers.c ++++ b/VEX/priv/guest_ppc_helpers.c +@@ -119,6 +119,24 @@ UInt ppc32g_dirtyhelper_MFSPR_287 ( void ) + # endif + } + ++/* CALLED FROM GENERATED CODE */ ++/* DIRTY HELPER (non-referentially transparent) */ ++UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt r527 ) ++{ ++# if defined(__powerpc__) || defined(_AIX) ++ UInt spr; ++ if (r527) { ++ __asm__ __volatile__("mfspr %0,527" : "=b"(spr)); ++ } else { ++ __asm__ __volatile__("mfspr %0,526" : "=b"(spr)); ++ } ++ return spr; ++# else ++ return 0; ++# endif ++} ++ ++ + + /* CALLED FROM GENERATED CODE */ + /* DIRTY HELPER (reads guest state, writes guest mem) */ +diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c +index f8d220d..37c8974 100644 +--- a/VEX/priv/guest_ppc_toIR.c ++++ b/VEX/priv/guest_ppc_toIR.c +@@ -5657,6 +5657,28 @@ static Bool dis_proc_ctl ( VexAbiInfo* vbi, UInt theInstr ) + break; + } + ++ ++ case 526 /* 0x20E */: ++ case 527 /* 0x20F */: { ++ UInt arg = SPR==526 ? 0 : 1; ++ IRTemp val = newTemp(Ity_I32); ++ IRExpr** args = mkIRExprVec_1( mkU32(arg) ); ++ IRDirty* d = unsafeIRDirty_1_N( ++ val, ++ 0/*regparms*/, ++ "ppc32g_dirtyhelper_MFSPR_526_527", ++ fnptr_to_fnentry ++ (vbi, &ppc32g_dirtyhelper_MFSPR_526_527), ++ args ++ ); ++ /* execute the dirty call, dumping the result in val. */ ++ stmt( IRStmt_Dirty(d) ); ++ putIReg( rD_addr, ++ mkWidenFrom32(ty, mkexpr(val), False/*unsigned*/) ); ++ DIP("mfspr r%u,%u", rD_addr, (UInt)SPR); ++ break; ++ } ++ + default: + vex_printf("dis_proc_ctl(ppc)(mfspr,SPR)(0x%x)\n", SPR); + return False; +-- +1.7.0.4 diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/avoid-neon-for-targets-which-don-t-support-it.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/avoid-neon-for-targets-which-don-t-support-it.patch new file mode 100644 index 000000000..5fcfec001 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/avoid-neon-for-targets-which-don-t-support-it.patch @@ -0,0 +1,33 @@ +From 8facc29c3c56e6cf9cfef70986cf73876044a3fb Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 19 Jan 2016 16:42:36 -0800 +Subject: [PATCH] avoid neon for targets which don't support it + +The sh-mem-random.c test app tries to use neon loads and stores to +test 64-bit float copies when building for ARM. Allow it to do so if +possible, but fallback to C when building for ARM targets which don't +support neon. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + memcheck/tests/sh-mem-random.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/memcheck/tests/sh-mem-random.c b/memcheck/tests/sh-mem-random.c +index ae82248..816e139 100644 +--- a/memcheck/tests/sh-mem-random.c ++++ b/memcheck/tests/sh-mem-random.c +@@ -191,7 +191,7 @@ void do_test_at ( U1* arr ) + "emms" + : : "r"(arr+dst), "r"(arr+src) : "memory" + ); +-#elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__) ++#elif defined(__linux__) && defined(__arm__) && defined(__ARM_NEON__) && !defined(__aarch64__) + /* On arm32, many compilers generate a 64-bit float move + using two 32 bit integer registers, which completely + defeats this test. Hence force a 64-bit NEON load and +-- +1.9.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch new file mode 100644 index 000000000..b431d3356 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch @@ -0,0 +1,78 @@ +From 67e7a690107efb16d6d5aebfe420b64a552accdf Mon Sep 17 00:00:00 2001 +From: Qing He <qing.he@intel.com> +Date: Tue, 31 Aug 2010 22:51:58 +0800 +Subject: [PATCH] valgrind: fix perl scripts + +this is a temporary patch to workaround cross compilation. +otherwise @PERL@ will be replaced to perl-native binary, +this creates unusable scripts and fails FILERDEPENDS mechanism +(esp. rpm) + +a better fix would need: + 1. configure.ac should differentiate PERL and HOSTPERL + 2. optionally remove ${STAGING_DIR} in #! line before do_install + +8/31/2010 - created by Qing He <qing.he@intel.com> + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Maxin B. John <maxin.john@intel.com> +--- + cachegrind/cg_annotate.in | 2 +- + cachegrind/cg_diff.in | 2 +- + massif/ms_print.in | 2 +- + perf/vg_perf.in | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in +index 69365e8..978265d 100644 +--- a/cachegrind/cg_annotate.in ++++ b/cachegrind/cg_annotate.in +@@ -1,4 +1,4 @@ +-#! @PERL@ ++#! /usr/bin/perl + + ##--------------------------------------------------------------------## + ##--- Cachegrind's annotator. cg_annotate.in ---## +diff --git a/cachegrind/cg_diff.in b/cachegrind/cg_diff.in +index 395460b..05873cc 100755 +--- a/cachegrind/cg_diff.in ++++ b/cachegrind/cg_diff.in +@@ -1,4 +1,4 @@ +-#! @PERL@ ++#! /usr/bin/perl + + ##--------------------------------------------------------------------## + ##--- Cachegrind's differencer. cg_diff.in ---## +diff --git a/massif/ms_print.in b/massif/ms_print.in +index e6fae89..3b85b40 100755 +--- a/massif/ms_print.in ++++ b/massif/ms_print.in +@@ -1,4 +1,4 @@ +-#! @PERL@ ++#! /usr/bin/perl + + ##--------------------------------------------------------------------## + ##--- Massif's results printer ms_print.in ---## +diff --git a/perf/vg_perf.in b/perf/vg_perf.in +index 7a80cb0..28f6156 100644 +--- a/perf/vg_perf.in ++++ b/perf/vg_perf.in +@@ -1,4 +1,4 @@ +-#! @PERL@ ++#! /usr/bin/perl + ##--------------------------------------------------------------------## + ##--- Valgrind performance testing script vg_perf ---## + ##--------------------------------------------------------------------## +diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in +index cb05b52..032e947 100755 +--- a/tests/vg_regtest.in ++++ b/tests/vg_regtest.in +@@ -1,4 +1,4 @@ +-#! @PERL@ ++#! /usr/bin/perl + ##--------------------------------------------------------------------## + ##--- Valgrind regression testing script vg_regtest ---## + ##--------------------------------------------------------------------## +--- +2.4.0 diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/link-gz-tests.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/link-gz-tests.patch new file mode 100644 index 000000000..db322398c --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/link-gz-tests.patch @@ -0,0 +1,27 @@ +When checking if the compiler supports compressed debug sections we need to +actually link instead of just compile. Otherwise the compiler thinks that +they are supported, but gold does not support -gz=zlib. + +Upstream-Status: Backport (r16459) +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- a/configure.ac~ 2017-07-11 11:53:16.000000000 +0100 ++++ b/configure.ac 2017-07-11 18:16:13.674130483 +0100 +@@ -2119,7 +2119,7 @@ + safe_CFLAGS=$CFLAGS + CFLAGS="-g -gz=zlib" + +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[ + return 0; + ]])], [ + ac_have_gz_zlib=yes +@@ -2139,7 +2139,7 @@ + safe_CFLAGS=$CFLAGS + CFLAGS="-g -gz=zlib-gnu" + +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[ ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[ + return 0; + ]])], [ + ac_have_gz_zlib_gnu=yes diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/ppc-headers.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/ppc-headers.patch new file mode 100644 index 000000000..51259db00 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/ppc-headers.patch @@ -0,0 +1,87 @@ +Backport a patch from upstream to fix test compilation for PPC where +system headers don't get included. + +Upstream-Status: Backport +Signed-off-by: Ross Burton <ross.burton@intel.com> + +r16450 | mjw | 2017-06-16 10:33:35 +0100 (Fri, 16 Jun 2017) | 7 lines + +ppc64 doesn't compile test_isa_2_06_partx.c without VSX support + +The #ifdef HAS_VSX guard is wrongly placed. It makes the standard +include headers not be used. Causing a build failure. Fix by moving +the #ifdef HAS_VSX after the standard includes. + +Index: none/tests/ppc32/test_isa_2_06_part3.c +=================================================================== +--- a/none/tests/ppc32/test_isa_2_06_part3.c (revision 16449) ++++ b/none/tests/ppc32/test_isa_2_06_part3.c (revision 16450) +@@ -20,17 +20,18 @@ + The GNU General Public License is contained in the file COPYING. + */ + +-#ifdef HAS_VSX +- + #include <stdio.h> + #include <stdint.h> + #include <stdlib.h> + #include <string.h> + #include <malloc.h> +-#include <altivec.h> + #include <math.h> + #include <unistd.h> // getopt + ++#ifdef HAS_VSX ++ ++#include <altivec.h> ++ + #ifndef __powerpc64__ + typedef uint32_t HWord_t; + #else +Index: none/tests/ppc32/test_isa_2_06_part1.c +=================================================================== +--- a/none/tests/ppc32/test_isa_2_06_part1.c (revision 16449) ++++ b/none/tests/ppc32/test_isa_2_06_part1.c (revision 16450) +@@ -20,13 +20,14 @@ + The GNU General Public License is contained in the file COPYING. + */ + +-#ifdef HAS_VSX +- + #include <stdio.h> + #include <stdint.h> + #include <stdlib.h> + #include <string.h> + #include <malloc.h> ++ ++#ifdef HAS_VSX ++ + #include <altivec.h> + + #ifndef __powerpc64__ +Index: none/tests/ppc32/test_isa_2_06_part2.c +=================================================================== +--- a/none/tests/ppc32/test_isa_2_06_part2.c (revision 16449) ++++ b/none/tests/ppc32/test_isa_2_06_part2.c (revision 16450) +@@ -20,17 +20,18 @@ + The GNU General Public License is contained in the file COPYING. + */ + +-#ifdef HAS_VSX +- + #include <stdio.h> + #include <stdint.h> + #include <stdlib.h> + #include <string.h> + #include <malloc.h> +-#include <altivec.h> + #include <math.h> + #include <unistd.h> // getopt + ++#ifdef HAS_VSX ++ ++#include <altivec.h> ++ + #ifndef __powerpc64__ + typedef uint32_t HWord_t; + #else diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/run-ptest b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/run-ptest new file mode 100755 index 000000000..447d33c8c --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/run-ptest @@ -0,0 +1,25 @@ +#!/bin/sh + +# run-ptest - 'ptest' test infrastructure shell script that +# wraps the valgrind regression script vg_regtest. +# +# Dave Lerner <dave.lerner@windriver.com> +############################################################### +VALGRINDLIB=@libdir@/valgrind +LOG="${VALGRINDLIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log" + +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` +skipped=`grep SKIP: ${LOG}|wc -l` +all=$((passed + failed + skipped)) + +( echo "=== Test Summary ===" + echo "TOTAL: ${all}" + echo "PASSED: ${passed}" + echo "FAILED: ${failed}" + echo "SKIPPED: ${skipped}" +) | tee -a /${LOG} diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch new file mode 100644 index 000000000..adea40521 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch @@ -0,0 +1,44 @@ +From d134dafc2f11e0d247420a0ba360bcdef77b4093 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 19 Jan 2016 16:00:00 -0800 +Subject: [PATCH] use appropriate -march/-mcpu/-mfpu for ARM test apps + +Ensure that test apps in none/tests/arm are compiled with appropriate +-march/-mcpu/-mfpu flags to support the instructions being tested. +The aim is to build all tests, even ones which may not run correctly +on all target CPUs. + +For tests requiring armv7ve instructions, ensure that we set both +-march=armv7ve and -mcpu=cortex-a15 (since some TUNE_CCARGS may set +-march=armv7-a and adding -mcpu=cortex-a15 alone is not enough to +over-ride that). + +See similar cases in none/tests/arm/Makefile.am + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + none/tests/arm/Makefile.am | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am +index 4507a20..825290f 100644 +--- a/none/tests/arm/Makefile.am ++++ b/none/tests/arm/Makefile.am +@@ -62,8 +62,10 @@ neon64_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \ + -mfpu=neon \ + -mthumb + +-intdiv_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a15 -mthumb ++intdiv_CFLAGS = $(AM_CFLAGS) -g -march=armv7ve -mcpu=cortex-a15 -mthumb + ldrt_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb + ldrt_arm_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm + +-vfpv4_fma_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a15 -mfpu=vfpv4 -marm ++vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mfpu=vfpv3 ++ ++vfpv4_fma_CFLAGS = $(AM_CFLAGS) -g -O0 -march=armv7ve -mcpu=cortex-a15 -mfpu=vfpv4 -marm +-- +1.9.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch new file mode 100644 index 000000000..d04297dca --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch @@ -0,0 +1,45 @@ +From 005bd11809a1ce65e9f2c28e884354a4741650b9 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 13 Dec 2016 11:29:55 +0800 +Subject: [PATCH] make ld-XXX.so strlen intercept optional + +Hack: Depending on how glibc was compiled (e.g. optimised for size or +built with _FORTIFY_SOURCE enabled) the strlen symbol might not be +found in ld-XXX.so. Therefore although we should still try to +intercept it, don't make it mandatory to do so. + +Upstream-Status: Inappropriate + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +Signed-off-by: Jackie Huang <jackie.huang@windriver.com> +--- + coregrind/m_redir.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c +index ff35009..d7d6816 100644 +--- a/coregrind/m_redir.c ++++ b/coregrind/m_redir.c +@@ -1275,7 +1275,18 @@ static void add_hardwired_spec (const HChar* sopatt, const HChar* fnpatt, + spec->to_addr = to_addr; + spec->isWrap = False; + spec->isGlobal = False; +- spec->mandatory = mandatory; ++ ++ /* Hack: Depending on how glibc was compiled (e.g. optimised for size or ++ built with _FORTIFY_SOURCE enabled) the strlen symbol might not be found. ++ Therefore although we should still try to intercept it, don't make it ++ mandatory to do so. We over-ride "mandatory" here to avoid the need to ++ patch the many different architecture specific callers to ++ add_hardwired_spec(). */ ++ if (0==VG_(strcmp)("strlen", fnpatt)) ++ spec->mandatory = NULL; ++ else ++ spec->mandatory = mandatory; ++ + /* VARIABLE PARTS */ + spec->mark = False; /* not significant */ + spec->done = False; /* not significant */ +-- +1.9.1 + diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind_git.bb b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind_git.bb new file mode 100644 index 000000000..351499782 --- /dev/null +++ b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind_git.bb @@ -0,0 +1,158 @@ +SUMMARY = "Valgrind memory debugger and instrumentation framework" +HOMEPAGE = "http://valgrind.org/" +BUGTRACKER = "http://valgrind.org/support/bug_reports.html" +LICENSE = "GPLv2 & GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://include/pub_tool_basics.h;beginline=6;endline=29;md5=d4de0407239381463cf01dd276d7c22e \ + 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)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} \ + " +SRC_URI = "git://sourceware.org/git/valgrind.git;protocol=git;branch=master" +SRCREV = "2b0aa0a5b88f900e986a3360952fcb3d2513419d" +S = "${WORKDIR}/git" + +# +# + +SRC_URI += " \ + file://fixed-perl-path.patch \ + file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \ + file://run-ptest \ + file://0002-remove-rpath.patch \ + 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 \ + file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \ + file://avoid-neon-for-targets-which-don-t-support-it.patch \ + file://valgrind-make-ld-XXX.so-strlen-intercept-optional.patch \ + file://0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch \ + file://0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch \ + file://0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch \ + file://0002-context-APIs-are-not-available-on-musl.patch \ + 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://link-gz-tests.patch \ + " +SRC_URI[md5sum] = "817dd08f1e8a66336b9ff206400a5369" +SRC_URI[sha256sum] = "d76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b" +UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar" + +COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux' + +# valgrind supports armv7 and above +COMPATIBLE_HOST_armv4 = 'null' +COMPATIBLE_HOST_armv5 = 'null' +COMPATIBLE_HOST_armv6 = 'null' + +# X32 isn't supported by valgrind at this time +COMPATIBLE_HOST_linux-gnux32 = 'null' +COMPATIBLE_HOST_linux-muslx32 = 'null' + +# Disable for some MIPS variants +COMPATIBLE_HOST_mipsarchn32 = 'null' +COMPATIBLE_HOST_mipsarchr6 = 'null' + +inherit autotools 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" + +CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'" + +# valgrind likes to control its own optimisation flags. It generally defaults +# to -O2 but uses -O0 for some specific test apps etc. Passing our own flags +# (via CFLAGS) means we interfere with that. Only pass DEBUG_FLAGS to it +# 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 +} + +do_install_append () { + install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/ + oe_multilib_header valgrind/config.h +} + +TUNE = "${@strip_mcpu(d)}" + +RDEPENDS_${PN} += "perl" + +# valgrind needs debug information for ld.so at runtime in order to +# redirect functions like strlen. +RRECOMMENDS_${PN} += "${TCLIBC}-dbg" + +RDEPENDS_${PN}-ptest += " sed perl perl-module-file-glob" +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' + +do_compile_ptest() { + oe_runmake check +} + +do_install_ptest() { + chmod +x ${B}/tests/vg_regtest + + # The test application binaries are not automatically installed. + # Grab them from the build directory. + # + # The regression tests require scripts and data files that are not + # copied to the build directory. They must be copied from the + # source directory. + saved_dir=$PWD + 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" + + # Get the vg test scripts, filters, and expected files + for dir in $subdirs ; do + find $dir | cpio -pvdu ${D}${PTEST_PATH} + done + cd $saved_dir + done + + # clean out build artifacts before building the rpm + find ${D}${PTEST_PATH} \ + \( -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 + + # handle multilib + sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest +} |