Skip to contentSkip to conversation

failed to build valgrind on qemuarm

BUG REPORT Rongqing Li 4 participants 10 messages Jan 19, 2016 – Jan 20, 2016

lore
Share & tools
lore
#0 lore raw

1. on qemuarm:

| arm-poky-linux-gnueabi-gcc  -march=armv5e -marm --sysroot=/buildarea1/lirq/Yocto/poky/arm/tmp/sysroots/qemuarm -DHAVE_CONFIG_H -I. -I../../valgrind-3.11.0/memcheck -I.. -I../../valgrind-3.11.0 -I../../valgrind-3.11.0/include -I../../valgrind-3.11.0/VEX/pub -I../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1  -O2 -g -std=gnu99 -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin  -marm -mcpu=cortex-a8 -O -g -fno-omit-frame-pointer -fno-strict-aliasing -fpic -fno-builtin -fno-ipa-icf -O2 -O2 -pipe -g -feliminate-unused-debug-types -c -o vgpreload_memcheck_arm_linux_so-mc_replace_strmem.o `test -f 'mc_replace_strmem.c' || echo '../../valgrind-3.11.0/memcheck/'`mc_replace_strmem.c
| for f in ; do \
|   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
|       echo "dsymutil $f"; \
|       dsymutil $f; \
|   fi; \
| done
| ../../valgrind-3.11.0/memcheck/mc_malloc_wrappers.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| mkdir -p ../.in_place; \
| for f in ; do \
|   rm -f ../.in_place/$f.dSYM; \
|   ln -f -s ../memcheck/$f.dSYM ../.in_place; \
| done
| ../../valgrind-3.11.0/memcheck/mc_leakcheck.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_replace_strmem.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_errors.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_translate.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_machine.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_main.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|  /* -*- mode: C; c-basic-offset: 3; -*- */
|  ^
| {standard input}: Assembler messages:
| {standard input}:25: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:28: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:30: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:31: Error: selected processor does not support ARM mode `movw r3,#0xAAAA'
| {standard input}:40: Error: selected processor does not support ARM mode `movw r3,#0x5555'
| {standard input}:61: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:64: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:66: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:94: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:95: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:96: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:135: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:136: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:137: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'

2: on qemuarma9

| 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/memcheck/tests -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    -O2 -pipe -g  -fno-omit-frame-pointer -fvisibility=default -O0 -c -o sh-mem-random.o /work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c
| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode `vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode `vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o' failed

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy

#1 lore raw
Quoted 1 line · Rongqing Li

1. on qemuarm:

There is a patch for this:
[OE-core] [PATCH] valgrind: make it explicit that valgrind supports armv7a and above

// Robert

Quoted 130 lines

| arm-poky-linux-gnueabi-gcc -march=armv5e -marm --sysroot=/buildarea1/lirq/Yocto/poky/arm/tmp/sysroots/qemuarm -DHAVE_CONFIG_H

(quoted diff) +0 -10
-I. -I../../valgrind-3.11.0/memcheck -I.. -I../../valgrind-3.11.0
-I../../valgrind-3.11.0/include -I../../valgrind-3.11.0/VEX/pub -I../VEX/pub
-DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1  -O2 -g
-std=gnu99 -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith
-Wstrict-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings
-Wempty-body -Wformat -Wformat-security -Wignored-qualifiers
-Wmissing-parameter-type -Wold-style-declaration -fno-stack-protector
-fno-strict-aliasing -fno-builtin  -marm -mcpu=cortex-a8 -O -g
-fno-omit-frame-pointer -fno-strict-aliasing -fpic -fno-builtin -fno-ipa-icf -O2
-O2 -pipe -g -feliminate-unused-debug-types -c -o

vgpreload_memcheck_arm_linux_so-mc_replace_strmem.o test -f 'mc_replace_strmem.c' || echo '../../valgrind-3.11.0/memcheck/'mc_replace_strmem.c

| for f in ; do \
|   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
|       echo "dsymutil $f"; \
|       dsymutil $f; \
|   fi; \
| done
| ../../valgrind-3.11.0/memcheck/mc_malloc_wrappers.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| mkdir -p ../.in_place; \
| for f in ; do \
|   rm -f ../.in_place/$f.dSYM; \
|   ln -f -s ../memcheck/$f.dSYM ../.in_place; \
| done
| ../../valgrind-3.11.0/memcheck/mc_leakcheck.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_replace_strmem.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_errors.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_translate.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_machine.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_main.c:1:0: warning: switch -mcpu=cortex-a8
conflicts with -march=armv5e switch
|  /* -*- mode: C; c-basic-offset: 3; -*- */
|  ^
| {standard input}: Assembler messages:
| {standard input}:25: Error: selected processor does not support ARM mode `movw

r3,#:lower16:primary_map'
| {standard input}:28: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:30: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:31: Error: selected processor does not support ARM mode `movw r3,#0xAAAA'
| {standard input}:40: Error: selected processor does not support ARM mode `movw r3,#0x5555'
| {standard input}:61: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:64: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:66: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:94: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:95: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:96: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:135: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:136: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:137: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'

2: on qemuarma9

| arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp -marm

(quoted diff) +0 -14
-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/memcheck/tests
-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    -O2 -pipe -g  -fno-omit-frame-pointer
-fvisibility=default -O0 -c -o sh-mem-random.o

/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c

| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode `vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode `vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o' failed

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy

#2 lore raw
Quoted 9 lines · Robert Yang
Quoted 1 line · Rongqing Li

1. on qemuarm:

There is a patch for this:
[OE-core] [PATCH] valgrind: make it explicit that valgrind supports armv7a and above

// Robert

which armv7 BSP is tested?

thanks

-Roy

Quoted 161 lines
Quoted 160 lines

| arm-poky-linux-gnueabi-gcc -march=armv5e -marm --sysroot=/buildarea1/lirq/Yocto/poky/arm/tmp/sysroots/qemuarm

(quoted diff) +0 -14
-DHAVE_CONFIG_H
-I. -I../../valgrind-3.11.0/memcheck -I.. -I../../valgrind-3.11.0
-I../../valgrind-3.11.0/include -I../../valgrind-3.11.0/VEX/pub
-I../VEX/pub
-DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1
-DVGPV_arm_linux_vanilla=1  -O2 -g
-std=gnu99 -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith
-Wstrict-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings
-Wempty-body -Wformat -Wformat-security -Wignored-qualifiers
-Wmissing-parameter-type -Wold-style-declaration -fno-stack-protector
-fno-strict-aliasing -fno-builtin  -marm -mcpu=cortex-a8 -O -g
-fno-omit-frame-pointer -fno-strict-aliasing -fpic -fno-builtin
-fno-ipa-icf -O2
-O2 -pipe -g -feliminate-unused-debug-types -c -o

vgpreload_memcheck_arm_linux_so-mc_replace_strmem.o test -f 'mc_replace_strmem.c' || echo '../../valgrind-3.11.0/memcheck/'mc_replace_strmem.c

| for f in ; do \
|   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
|       echo "dsymutil $f"; \
|       dsymutil $f; \
|   fi; \
| done
| ../../valgrind-3.11.0/memcheck/mc_malloc_wrappers.c:1:0: warning:
switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| mkdir -p ../.in_place; \
| for f in ; do \
|   rm -f ../.in_place/$f.dSYM; \
|   ln -f -s ../memcheck/$f.dSYM ../.in_place; \
| done
| ../../valgrind-3.11.0/memcheck/mc_leakcheck.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_replace_strmem.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_errors.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_translate.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_machine.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_main.c:1:0: warning: switch
-mcpu=cortex-a8
conflicts with -march=armv5e switch
|  /* -*- mode: C; c-basic-offset: 3; -*- */
|  ^
| {standard input}: Assembler messages:
| {standard input}:25: Error: selected processor does not support ARM

mode `movw
r3,#:lower16:primary_map'
| {standard input}:28: Error: selected processor does not support ARM mode `movt
r3,#:upper16:primary_map'
| {standard input}:30: Error: selected processor does not support ARM mode `uxth
r1,r0'
| {standard input}:31: Error: selected processor does not support ARM mode `movw
r3,#0xAAAA'
| {standard input}:40: Error: selected processor does not support ARM mode `movw
r3,#0x5555'
| {standard input}:61: Error: selected processor does not support ARM mode `movw
r3,#:lower16:primary_map'
| {standard input}:64: Error: selected processor does not support ARM mode `movt
r3,#:upper16:primary_map'
| {standard input}:66: Error: selected processor does not support ARM mode `uxth
r1,r0'
| {standard input}:94: Error: selected processor does not support ARM mode `movw
r3,#:lower16:primary_map'
| {standard input}:95: Error: selected processor does not support ARM mode `uxth
r1,r0'
| {standard input}:96: Error: selected processor does not support ARM mode `movt
r3,#:upper16:primary_map'
| {standard input}:135: Error: selected processor does not support ARM mode
`movw r3,#:lower16:primary_map'
| {standard input}:136: Error: selected processor does not support ARM mode
`uxth r1,r0'
| {standard input}:137: Error: selected processor does not support ARM mode
`movt r3,#:upper16:primary_map'

2: on qemuarma9

| arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp -marm

(quoted diff) +0 -14
-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/memcheck/tests
 
-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    -O2 -pipe -g  -fno-omit-frame-pointer
-fvisibility=default -O0 -c -o sh-mem-random.o

/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c

| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode
`vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode
`vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o' failed

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy

Signature · 2 lines
Best Reagrds,
Roy | RongQing Li
#3 lore raw

Add Andre in the loop.

// Robert

Quoted 188 lines · Rongqing Li
Quoted 9 lines · Robert Yang
Quoted 1 line · Rongqing Li

1. on qemuarm:

There is a patch for this:
[OE-core] [PATCH] valgrind: make it explicit that valgrind supports armv7a and above

// Robert

which armv7 BSP is tested?

thanks

-Roy

Quoted 167 lines
Quoted 166 lines

| arm-poky-linux-gnueabi-gcc -march=armv5e -marm --sysroot=/buildarea1/lirq/Yocto/poky/arm/tmp/sysroots/qemuarm

(quoted diff) +0 -14
-DHAVE_CONFIG_H
-I. -I../../valgrind-3.11.0/memcheck -I.. -I../../valgrind-3.11.0
-I../../valgrind-3.11.0/include -I../../valgrind-3.11.0/VEX/pub
-I../VEX/pub
-DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1
-DVGPV_arm_linux_vanilla=1  -O2 -g
-std=gnu99 -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith
-Wstrict-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings
-Wempty-body -Wformat -Wformat-security -Wignored-qualifiers
-Wmissing-parameter-type -Wold-style-declaration -fno-stack-protector
-fno-strict-aliasing -fno-builtin  -marm -mcpu=cortex-a8 -O -g
-fno-omit-frame-pointer -fno-strict-aliasing -fpic -fno-builtin
-fno-ipa-icf -O2
-O2 -pipe -g -feliminate-unused-debug-types -c -o

vgpreload_memcheck_arm_linux_so-mc_replace_strmem.o test -f 'mc_replace_strmem.c' || echo '../../valgrind-3.11.0/memcheck/'mc_replace_strmem.c

| for f in ; do \
|   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
|       echo "dsymutil $f"; \
|       dsymutil $f; \
|   fi; \
| done
| ../../valgrind-3.11.0/memcheck/mc_malloc_wrappers.c:1:0: warning:
switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| mkdir -p ../.in_place; \
| for f in ; do \
|   rm -f ../.in_place/$f.dSYM; \
|   ln -f -s ../memcheck/$f.dSYM ../.in_place; \
| done
| ../../valgrind-3.11.0/memcheck/mc_leakcheck.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_replace_strmem.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_errors.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_translate.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_machine.c:1:0: warning: switch
-mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_main.c:1:0: warning: switch
-mcpu=cortex-a8
conflicts with -march=armv5e switch
|  /* -*- mode: C; c-basic-offset: 3; -*- */
|  ^
| {standard input}: Assembler messages:
| {standard input}:25: Error: selected processor does not support ARM

mode `movw
r3,#:lower16:primary_map'
| {standard input}:28: Error: selected processor does not support ARM mode `movt
r3,#:upper16:primary_map'
| {standard input}:30: Error: selected processor does not support ARM mode `uxth
r1,r0'
| {standard input}:31: Error: selected processor does not support ARM mode `movw
r3,#0xAAAA'
| {standard input}:40: Error: selected processor does not support ARM mode `movw
r3,#0x5555'
| {standard input}:61: Error: selected processor does not support ARM mode `movw
r3,#:lower16:primary_map'
| {standard input}:64: Error: selected processor does not support ARM mode `movt
r3,#:upper16:primary_map'
| {standard input}:66: Error: selected processor does not support ARM mode `uxth
r1,r0'
| {standard input}:94: Error: selected processor does not support ARM mode `movw
r3,#:lower16:primary_map'
| {standard input}:95: Error: selected processor does not support ARM mode `uxth
r1,r0'
| {standard input}:96: Error: selected processor does not support ARM mode `movt
r3,#:upper16:primary_map'
| {standard input}:135: Error: selected processor does not support ARM mode
`movw r3,#:lower16:primary_map'
| {standard input}:136: Error: selected processor does not support ARM mode
`uxth r1,r0'
| {standard input}:137: Error: selected processor does not support ARM mode
`movt r3,#:upper16:primary_map'

2: on qemuarma9

| arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp -marm

(quoted diff) +0 -14
-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/memcheck/tests
 
 
-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    -O2 -pipe -g  -fno-omit-frame-pointer
-fvisibility=default -O0 -c -o sh-mem-random.o

/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c

| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode
`vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode
`vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o' failed

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy

#4 lore raw
In reply to Rongqing Li
Quoted 3 lines · Rongqing Li

2: on qemuarma9

The problem seems to be that the machine doesn't support NEON and Valgrind 3.11 includes a new test case which uses embedded NEON instructions.

We do already disable a few tests which don't build for all ARM machines (see "remove-arm-variant-specific.patch"), so maybe the "sh-mem-random" test should be disabled as well. I'll take a look.

What DEFAULTTUNE does the qemuarma9 machine use?

Quoted 46 lines

| arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp -marm

(quoted diff) +0 -14
-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/memcheck/tests
-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    -O2 -pipe -g  -fno-omit-frame-pointer
-fvisibility=default -O0 -c -o sh-mem-random.o

/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c | {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode
`vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode
`vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o' failed

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#5 lore raw
Quoted 9 lines · Andre McCurdy
Quoted 3 lines · Rongqing Li

2: on qemuarma9

The problem seems to be that the machine doesn't support NEON and Valgrind 3.11 includes a new test case which uses embedded NEON instructions.

Quoted 6 lines

We do already disable a few tests which don't build for all ARM machines (see "remove-arm-variant-specific.patch"), so maybe the "sh-mem-random" test should be disabled as well. I'll take a look.

What DEFAULTTUNE does the qemuarma9 machine use?

DEFAULTTUNE="armv7at"

thanks

-Roy

Quoted 47 lines
Quoted 46 lines

| arm-wrs-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=softfp -marm

(quoted diff) +0 -14
-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/memcheck/tests
-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    -O2 -pipe -g  -fno-omit-frame-pointer
-fvisibility=default -O0 -c -o sh-mem-random.o

/work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c | {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode
`vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode
`vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o' failed

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 2 lines
Best Reagrds,
Roy | RongQing Li
#6 lore raw
In reply to Rongqing Li
Quoted 56 lines · Rongqing Li

1. on qemuarm:

| arm-poky-linux-gnueabi-gcc  -march=armv5e -marm --sysroot=/buildarea1/lirq/Yocto/poky/arm/tmp/sysroots/qemuarm -DHAVE_CONFIG_H -I. -I../../valgrind-3.11.0/memcheck -I.. -I../../valgrind-3.11.0 -I../../valgrind-3.11.0/include -I../../valgrind-3.11.0/VEX/pub -I../VEX/pub -DVGA_arm=1 -DVGO_linux=1 -DVGP_arm_linux=1 -DVGPV_arm_linux_vanilla=1  -O2 -g -std=gnu99 -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wcast-qual -Wwrite-strings -Wempty-body -Wformat -Wformat-security -Wignored-qualifiers -Wmissing-parameter-type -Wold-style-declaration -fno-stack-protector -fno-strict-aliasing -fno-builtin  -marm -mcpu=cortex-a8 -O -g -fno-omit-frame-pointer -fno-strict-aliasing -fpic -fno-builtin -fno-ipa-icf -O2 -O2 -pipe -g -feliminate-unused-debug-types -c -o vgpreload_memcheck_arm_linux_so-mc_replace_strmem.o `test -f 'mc_replace_strmem.c' || echo '../../valgrind-3.11.0/memcheck/'`mc_replace_strmem.c
| for f in ; do \
|   if [ ! -e $f.dSYM  -o  $f -nt $f.dSYM ] ; then \
|       echo "dsymutil $f"; \
|       dsymutil $f; \
|   fi; \
| done
| ../../valgrind-3.11.0/memcheck/mc_malloc_wrappers.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| mkdir -p ../.in_place; \
| for f in ; do \
|   rm -f ../.in_place/$f.dSYM; \
|   ln -f -s ../memcheck/$f.dSYM ../.in_place; \
| done
| ../../valgrind-3.11.0/memcheck/mc_leakcheck.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_replace_strmem.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_errors.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_translate.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_machine.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|
|  ^
| ../../valgrind-3.11.0/memcheck/mc_main.c:1:0: warning: switch -mcpu=cortex-a8 conflicts with -march=armv5e switch
|  /* -*- mode: C; c-basic-offset: 3; -*- */
|  ^
| {standard input}: Assembler messages:
| {standard input}:25: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:28: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:30: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:31: Error: selected processor does not support ARM mode `movw r3,#0xAAAA'
| {standard input}:40: Error: selected processor does not support ARM mode `movw r3,#0x5555'
| {standard input}:61: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:64: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:66: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:94: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:95: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:96: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
| {standard input}:135: Error: selected processor does not support ARM mode `movw r3,#:lower16:primary_map'
| {standard input}:136: Error: selected processor does not support ARM mode `uxth r1,r0'
| {standard input}:137: Error: selected processor does not support ARM mode `movt r3,#:upper16:primary_map'
Quoted 8 lines

2: on qemuarma9

| 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/memcheck/tests -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    -O2 -pipe -g  -fno-omit-frame-pointer -fvisibility=default -O0 -c -o sh-mem-random.o /work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c
| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode `vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode `vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o’ failed

So you disable neon but do not choose a particular implementation which allows so. e.g. you should have -mtune=cortex-a9 which allows neon to be optional but thats probably just the semantic thing. Below code should check for __ARM_NEON__ internal define being set as well before resorting to use neon instructions.

Quoted 23 lines

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

-Roy
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#7 lore raw
Quoted 12 lines · Khem Raj
Quoted 10 lines · Rongqing Li

2: on qemuarma9

| 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/memcheck/tests -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    -O2 -pipe -g  -fno-omit-frame-pointer -fvisibility=default -O0 -c -o sh-mem-random.o /work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c
| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode `vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode `vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o’ failed
Quoted 2 lines

So you disable neon but do not choose a particular implementation which allows so. e.g. you should have -mtune=cortex-a9 which allows neon to be optional but thats probably just the semantic thing. Below code should check for __ARM_NEON__ internal define being set as well before resorting to use neon instructions.

It's a test app which is failing, so I think we have 3 solutions:

1) Disable tests which don't build for all supported targets (the traditional OE approach). See:

http://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch

2) Tweak CFLAGS so that the test always compiles but fails at run-time on non-neon targets.

3) Tweak test code so that it avoids NEON instructions on non-neon targets (risk then is that the run-time test will appear to pass on non-neon targets when it should actually fail).

Any preference?

Quoted 30 lines
Quoted 16 lines

and the codes are below:

194 #elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
195 /* On arm32, many compilers generate a 64-bit float move

196                using two 32 bit integer registers, which completely
197                defeats this test.  Hence force a 64-bit NEON load and
198                store.  I guess this will break the build on non-NEON
199                capable targets. */

200 __asm__ __volatile__ (
201 "vld1.64 {d7},[%0] ; vst1.64 {d7},[%1] "
202 : : "r"(arr+src), "r"(arr+dst) : "d7","memory"
203 );
204 #else

Quoted 6 lines

-Roy
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#8 lore raw
Quoted 29 lines · Andre McCurdy
Quoted 12 lines · Khem Raj
Quoted 10 lines · Rongqing Li

2: on qemuarma9

| 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/memcheck/tests -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    -O2 -pipe -g  -fno-omit-frame-pointer -fvisibility=default -O0 -c -o sh-mem-random.o /work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c
| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode `vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode `vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o’ failed
Quoted 2 lines

So you disable neon but do not choose a particular implementation which allows so. e.g. you should have -mtune=cortex-a9 which allows neon to be optional but thats probably just the semantic thing. Below code should check for __ARM_NEON__ internal define being set as well before resorting to use neon instructions.

It's a test app which is failing, so I think we have 3 solutions:

1) Disable tests which don't build for all supported targets (the traditional OE approach). See:

http://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch

2) Tweak CFLAGS so that the test always compiles but fails at run-time on non-neon targets.

Quoted 6 lines

3) Tweak test code so that it avoids NEON instructions on non-neon targets (risk then is that the run-time test will appear to pass on non-neon targets when it should actually fail).

Any preference?

option 3

#9 lore raw
Quoted 29 lines · Khem Raj
Quoted 29 lines · Andre McCurdy
Quoted 12 lines · Khem Raj
Quoted 10 lines · Rongqing Li

2: on qemuarma9

| 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/memcheck/tests -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    -O2 -pipe -g  -fno-omit-frame-pointer -fvisibility=default -O0 -c -o sh-mem-random.o /work/wr/buildarea/arm/bitbake_build/tmp/work/armv7a-vfp-wrs-linux-gnueabi/valgrind/3.11.0-r0/valgrind-3.11.0/memcheck/tests/sh-mem-random.c
| {standard input}: Assembler messages:
| {standard input}:1107: Error: selected processor does not support ARM mode `vld1.64 {d7},[r3]'
| {standard input}:1107: Error: selected processor does not support ARM mode `vst1.64 {d7},[r2]'
| Makefile:2467: recipe for target 'sh-mem-random.o’ failed
Quoted 2 lines

So you disable neon but do not choose a particular implementation which allows so. e.g. you should have -mtune=cortex-a9 which allows neon to be optional but thats probably just the semantic thing. Below code should check for __ARM_NEON__ internal define being set as well before resorting to use neon instructions.

It's a test app which is failing, so I think we have 3 solutions:

1) Disable tests which don't build for all supported targets (the traditional OE approach). See:

http://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/valgrind/valgrind/remove-arm-variant-specific.patch

2) Tweak CFLAGS so that the test always compiles but fails at run-time on non-neon targets.

Quoted 8 lines
Quoted 5 lines

3) Tweak test code so that it avoids NEON instructions on non-neon targets (risk then is that the run-time test will appear to pass on non-neon targets when it should actually fail).

Any preference?

option 3

Yes, I think that's right in this case. The sh-mem-random.c test isn't really about testing neon, so falling back to C for non-neon targets seems correct.

Patch sent.