E100 compile error: trondeau safe_align branch

Hi all,

I’m trying to build Tom’s branch with the recent changes to use Volk,
but I’m getting an error. I ran this command:

cmake -DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_TOOLCHAIN_FILE=…/cmake/Toolchains/arm_cortex_a8_native.cmake
-DENABLE_GR_QTGUI=OFF -DCMAKE_BUILD_TYPE=release …/

And got this error:

[ 18%] generating filter files
[ 18%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/sysconfig_armv7_a.cc.o
[ 18%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/gr_fir_sysconfig_armv7_a.cc.o
[ 18%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/gr_cpu_armv7_a.cc.o
[ 18%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/gr_fir_fff_armv7_a.cc.o
[ 18%] Building C object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o
/tmp/cct93Ve1.s: Assembler messages:
/tmp/cct93Ve1.s:27: Error: bad instruction vmov.f32 q8,#0.0' /tmp/cct93Ve1.s:28: Error: bad instructionvmov.f32 q9,#0.0’
/tmp/cct93Ve1.s:31: Error: bad instruction vld1.32 {d0,d1,d2,d3},[r3]!' /tmp/cct93Ve1.s:32: Error: bad instructionvld1.32 {d4,d5,d6,d7},[r1]!’
/tmp/cct93Ve1.s:33: Error: bad instruction vmla.f32 q8,q0,q2' /tmp/cct93Ve1.s:34: Error: bad instructionvmla.f32 q9,q1,q3’
/tmp/cct93Ve1.s:36: Error: bad instruction vadd.f32 q8,q8,q9' /tmp/cct93Ve1.s:37: Error: bad instructionvpadd.f32 d0,d16,d17’
/tmp/cct93Ve1.s:38: Error: bad instruction `vadd.f32 s16,s0,s1’
make[2]: ***
[gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o]
Error 1
make[1]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/all]
Error 2
make: *** [all] Error 2

Any hints/ideas? Thanks!

Sean

On 02/16/2012 09:39 AM, Nowlan, Sean wrote:

[ 18%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/gr_fir_sysconfig_armv7_a.cc.o
/tmp/cct93Ve1.s:36: Error: bad instruction vadd.f32 q8,q8,q9' /tmp/cct93Ve1.s:37: Error: bad instructionvpadd.f32 d0,d16,d17’
/tmp/cct93Ve1.s:38: Error: bad instruction `vadd.f32 s16,s0,s1’
make[2]: ***
[gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o]
Error 1
make[1]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/all] Error 2
make: *** [all] Error 2

Any hints/ideas? Thanks!

I feel like the flags from the toolchain file are not getting through to
gcc, try passing the compiler flags via the command line.

Philip

That was the next thing I did and now (4 hours later :-P) it appears to
have worked. I’m not sure why it didn’t pick up CMAKE_TOOLCHAIN_FILE.

Thanks,
Sean

Actually, what’s the difference between “-march=armv7-a
-mtune=cortex-a8” and “-mcpu=cortex-a8”?

On 02/16/2012 07:16 PM, Philip B. wrote:

/tmp/cct93Ve1.s:37: Error: bad instruction vpadd.f32 d0,d16,d17' /tmp/cct93Ve1.s:38: Error: bad instructionvadd.f32 s16,s0,s1’
make[2]: ***
[gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o]
Error 1

make[1]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/all] Error 2
make: *** [all] Error 2

Any hints/ideas? Thanks!

I feel like the flags from the toolchain file are not getting through to
gcc, try passing the compiler flags via the command line.

For some reason it’s not working for me either. I’m always passing the
parameters via command line. Not sure whether it’s a CMake issue. Is it
working for everybody else?

-Andre

On 02/17/2012 02:25 AM, Andre P. wrote:

gcc, try passing the compiler flags via the command line.

For some reason it’s not working for me either. I’m always passing the
parameters via command line. Not sure whether it’s a CMake issue. Is it
working for everybody else?

I looked at this the other day and it made me very angry :slight_smile:

It is on my list of things to figure out.

Philip

It doesn’t work for me, either.

Cheers,
Ben

On 02/16/2012 02:10 PM, Nowlan, Sean wrote:

Actually, what’s the difference between “-march=armv7-a -mtune=cortex-a8” and
“-mcpu=cortex-a8”?

I think the second is a deprecated way to say the first.

-Josh