[OE-core] [PATCH v2 2/3] valgrind: re-enable ARM intdiv and vcvt_fixed_float_VFP tests

Rongqing Li rongqing.li at windriver.com
Wed Jan 20 03:00:49 UTC 2016



On 2016年01月20日 10:47, Andre McCurdy wrote:
> The intdiv test has been partially fixed upstream and the
> vcvt_fixed_float_VFP test can be fixed with a similar approach, ie
> ensuring that it is always compiled with appropriate
> -march/-mcpu/-mfpu flags to support the instructions being tested.
>
> 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
>
> Signed-off-by: Andre McCurdy <armccurdy at gmail.com>



Tested-by: Roy Li <rongqing.li at windriver.com>


thanks


-Roy
> ---
>   .../valgrind/remove-arm-variant-specific.patch     | 66 ----------------------
>   ...opriate-march-mcpu-mfpu-for-ARM-test-apps.patch | 44 +++++++++++++++
>   meta/recipes-devtools/valgrind/valgrind_3.11.0.bb  |  2 +-
>   3 files changed, 45 insertions(+), 67 deletions(-)
>   delete mode 100644 meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch
>   create mode 100644 meta/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch
>
> diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch b/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch
> deleted file mode 100644
> index 2319ab9..0000000
> --- a/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -Remove arm tests that don't compile
> -
> -Upstream-Status: Pending
> -
> -Corrects the original commit for the patch that removed ARM ptest CFLAGS
> -settings. Since the flags could be set by a user, the flags should
> -be kept in place during compilation.  By keeping the original up-stream
> -CFLAGS for the tests, then additional tests successfully compile
> -for all tested ARM tunings.
> -
> -However, there were still two tests listed below that did not compile
> -for any beaglebone tuning that is valid for valgrind. With the updated
> -patch, the set of excluded ARM ptests and their respective build
> -failures are:
> -  intdiv - fails for all beaglebone tunings with 2 errors:
> -  {standard input}:(40 or 41): Error: selected processor does not
> -       support Thumb mode `udiv r3,r9,r10'
> -  {standard input}:(72 or 73): Error: selected processor does not
> -       support Thumb mode `sdiv r3,r9,r10'
> -
> -  vcvt_fixed_float_VFP - fails for all beaglebone tunings in one of
> -  two ways:
> -    with neon tuning (-mfpu=neon) fails with Internal Compiler Error
> -    without neon tuning fails with 3 errors:
> -    {standard input}:33: Error: selected FPU does not support
> -      instruction -- `vcvt.f32.s32 s15,s15,#1'
> -    {standard input}:58: Error: selected FPU does not support
> -      instruction -- `vcvt.f32.s32 s15,s15,#32'
> -    {standard input}:136: Error: selected FPU does not support
> -      instruction -- `vcvt.f32.u32 s15,s15,#1'
> -
> -After applying this commit, the valgrind ARM ptests compile without
> -errors for tunings:
> -  armv7[t][hf][b][-neon] cortexa8[t][hf][-neon]
> -where the tuning [option] was successfully compiled, both with
> -and without the 'option', and in combination with all other options.
> -
> -Signed-off-by: Dave Lerner <dave.lerner at windriver.com>
> -
> -Index: valgrind-3.10.1/none/tests/arm/Makefile.am
> -===================================================================
> ---- valgrind-3.10.1.orig/none/tests/arm/Makefile.am	2015-05-19 15:11:59.224842927 -0500
> -+++ valgrind-3.10.1/none/tests/arm/Makefile.am	2015-05-19 15:14:20.808847028 -0500
> -@@ -17,9 +17,13 @@
> - 	vfp.stdout.exp vfp.stderr.exp vfp.vgtest \
> - 	vfpv4_fma.stdout.exp vfpv4_fma.stderr.exp vfpv4_fma.vgtest
> -
> -+# Remove the following tests which cause compiler errors for all tunings
> -+#  available for beagle bone (see remove-arm-variant-specific.patch):
> -+#	intdiv
> -+#	vcvt_fixed_float_VFP
> -+
> - check_PROGRAMS = \
> - 	allexec \
> --	intdiv \
> - 	ldrt \
> - 	ldrt_arm \
> - 	neon128 \
> -@@ -27,7 +31,6 @@
> - 	v6intARM \
> - 	v6intThumb \
> - 	v6media \
> --	vcvt_fixed_float_VFP \
> - 	vfp \
> - 	vfpv4_fma
> -
> diff --git a/meta/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch b/meta/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch
> new file mode 100644
> index 0000000..adea405
> --- /dev/null
> +++ b/meta/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 at 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 at 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/recipes-devtools/valgrind/valgrind_3.11.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb
> index 8e9b72c..4f7c39a 100644
> --- a/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb
> +++ b/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb
> @@ -15,13 +15,13 @@ DEPENDS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d
>   SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
>              file://fixed-perl-path.patch \
>              file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
> -           file://remove-arm-variant-specific.patch \
>              file://run-ptest \
>              file://11_mips-link-tool.patch \
>              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 \
>              "
>
>   SRC_URI[md5sum] = "4ea62074da73ae82e0162d6550d3f129"
>

-- 
Best Reagrds,
Roy | RongQing Li



More information about the Openembedded-core mailing list