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

Andre McCurdy armccurdy at gmail.com
Wed Jan 20 02:07:25 UTC 2016


On Tue, Jan 19, 2016 at 5:49 PM, Rongqing Li <rongqing.li at windriver.com> wrote:
>
> On 2016年01月20日 09:34, Andre McCurdy wrote:
>>
>> The intdiv test has been 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 -mcpu/-mfpu flags to support the
>> instructions being tested.
>>
>> See similar cases in none/tests/arm/Makefile.am
>>
>> Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
>> ---
>>   .../valgrind/remove-arm-variant-specific.patch     | 66
>> ----------------------
>>   ...ppropriate-flags-for-vcvt-fixed-float-VFP.patch | 33 +++++++++++
>>   meta/recipes-devtools/valgrind/valgrind_3.11.0.bb  |  2 +-
>>   3 files changed, 34 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-flags-for-vcvt-fixed-float-VFP.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 \
>
>
> it failed on my platform again
>
>
> | arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp  -marm
> -mthumb-interwork
> --sysroot=/work/wr/buildarea/arm/bitbake_build/tmp/sysroots/qemuarma9
> -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -Wno-nonnull
> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o allexec allexec-allexec.o
> | arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp  -marm
> -mthumb-interwork
> --sysroot=/work/wr/buildarea/arm/bitbake_build/tmp/sysroots/qemuarma9
> -DHAVE_CONFIG_H -I.
> -I/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/none/tests/arm
> -I../../..
> -I/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0
> -I/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/include
> -I/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/coregrind
> -I../../../include
> -I/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/VEX/pub
> -I../../../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1
> -DVGPV_arm_linux_vanilla=1   -Winline -Wall -Wshadow -Wno-long-long -g
> -fno-stack-protector    -g -mcpu=cortex-a15 -mthumb  -c -o intdiv-intdiv.o
> `test -f 'intdiv.c' || echo
> '/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/none/tests/arm/'`intdiv.c
> |
> /work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/none/tests/arm/intdiv.c:1:0:
> warning: switch -mcpu=cortex-a15 conflicts with -march=armv7-a switch
> |
> |  ^
> | /tmp/ccw8BXpd.s: Assembler messages:
> | /tmp/ccw8BXpd.s:49: Error: selected processor does not support Thumb mode
> `udiv r3,r9,r10'
> | /tmp/ccw8BXpd.s:104: Error: selected processor does not support Thumb mode
> `sdiv r3,r9,r10'
> | Makefile:811: recipe for target 'intdiv-intdiv.o' failed
> | make[5]: *** [intdiv-intdiv.o] Error 1
>

Thanks for testing. I'll send an updated patch.

>
> -Roy
>
>
>
>> -       vfp \
>> -       vfpv4_fma
>> -
>> diff --git
>> a/meta/recipes-devtools/valgrind/valgrind/use-appropriate-flags-for-vcvt-fixed-float-VFP.patch
>> b/meta/recipes-devtools/valgrind/valgrind/use-appropriate-flags-for-vcvt-fixed-float-VFP.patch
>> new file mode 100644
>> index 0000000..b60bbec
>> --- /dev/null
>> +++
>> b/meta/recipes-devtools/valgrind/valgrind/use-appropriate-flags-for-vcvt-fixed-float-VFP.patch
>> @@ -0,0 +1,33 @@
>> +From 3edcad177058150a841a88cf0798fdc0bd0dad43 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 -mcpu/-mfpu for vcvt_fixed_float_VFP
>> +
>> +vcvt_fixed_float_VFP.c contains embedded vfpv3 instructions. Ensure
>> +that it is always compiled with appropriate -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.
>> +
>> +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 | 2 ++
>> + 1 file changed, 2 insertions(+)
>> +
>> +diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am
>> +index 4507a20..b38a082 100644
>> +--- a/none/tests/arm/Makefile.am
>> ++++ b/none/tests/arm/Makefile.am
>> +@@ -66,4 +66,6 @@ intdiv_CFLAGS          = $(AM_CFLAGS) -g
>> -mcpu=cortex-a15 -mthumb
>> + ldrt_CFLAGS     = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb
>> + ldrt_arm_CFLAGS         = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm
>> +
>> ++vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8
>> -mfpu=vfpv3
>> ++
>> + vfpv4_fma_CFLAGS  = $(AM_CFLAGS) -g -O0 -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..d2a78c3 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-flags-for-vcvt-fixed-float-VFP.patch \
>>              "
>>
>>   SRC_URI[md5sum] = "4ea62074da73ae82e0162d6550d3f129"
>>
>
> --
> Best Reagrds,
> Roy | RongQing Li



More information about the Openembedded-core mailing list