discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Problems building GNURadio


From: Douglas Geiger
Subject: Re: [Discuss-gnuradio] Problems building GNURadio
Date: Sun, 21 Sep 2014 14:40:49 -0400

I am curious to hear from folks if the changes made in this commit (https://github.com/gnuradio/gnuradio/commit/33a43b42c7ea3c318cbad3fe9372a32bc2bd127e) has any effect on cross-compiling. I verified it did the correct thing for me when using the SDK from the gnuradio wiki (i.e. the one linked to from http://gnuradio.org/redmine/projects/gnuradio/wiki/Embedded) targeting a Cortex-A9 machine, however I'd like to get feedback from other people using it. I am also not convinced that it is 'automagically' doing the right thing when native compiling still, but I don't have hardware in front of me to test that use case at the moment. In general I discourage native compiling something as large as GNURadio on smaller platforms unless there is no alternative (especially due to the memory requirements of building all the SWIG-related objects), but if there is a path to have cmake do the correct thing in all cases I think we want to do that.

 Doug


On Sun, Sep 21, 2014 at 12:48 PM, Nowlan, Sean <address@hidden> wrote:

I'm using the cross compiling environment to take advantage of the latest updates to ARM VOLK kernels. My build environment is identical to the one described in the Wiki page for embedded, except that it was necessary to add "-mtune=cortex-a9" to get the Neon assembly files to compile in volk. Before adding this flag, I got this error:


[  0%] Building ASM object volk/lib/CMakeFiles/volk.dir/__/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s.o
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s: Assembler messages:
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:35: Error: selected processor does not support ARM mode `veor realAccQ,realAccQ'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:36: Error: selected processor does not support ARM mode `veor compAccQ,compAccQ'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:42: Error: selected processor does not support ARM mode `vld1.32 {d4-d5},[taps:128]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:43: Error: selected processor does not support ARM mode `vld2.32 {d18-d21},[input:128]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:50: Error: selected processor does not support ARM mode `vmul.f32 realMul,tapsVal,inRealVal'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:51: Error: selected processor does not support ARM mode `vmul.f32 compMul,tapsVal,inCompVal'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:52: Error: selected processor does not support ARM mode `vadd.f32 realAccQ,realAccQ,realMul'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:53: Error: selected processor does not support ARM mode `vadd.f32 compAccQ,compAccQ,compMul'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:54: Error: selected processor does not support ARM mode `vld1.32 {d4-d5},[taps:128]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:55: Error: selected processor does not support ARM mode `vld2.32 {d18-d21},[input:128]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:61: Error: selected processor does not support ARM mode `vpadd.f32 d0,d0,d1'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:62: Error: selected processor does not support ARM mode `vpadd.f32 d2,d2,d3'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:63: Error: selected processor does not support ARM mode `vadd.f32 realAccS,s0,s1'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:64: Error: selected processor does not support ARM mode `vadd.f32 compAccS,s4,s5'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:71: Error: selected processor does not support ARM mode `vld1.32 {d4[0]},[taps]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:72: Error: selected processor does not support ARM mode `vld2.32 {d5[0],d6[0]},[input]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:73: Error: selected processor does not support ARM mode `vmul.f32 s5,s8,s12'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:74: Error: selected processor does not support ARM mode `vmul.f32 s6,s8,s10'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:75: Error: selected processor does not support ARM mode `vadd.f32 realAccS,realAccS,s5'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:76: Error: selected processor does not support ARM mode `vadd.f32 compAccS,compAccS,s6'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:82: Error: selected processor does not support ARM mode `vst1.32 {d0[0]},[result]!'
/home/snowlan3/pybombs/src/gnuradio/volk/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s:83: Error: selected processor does not support ARM mode `vst1.32 {d2[0]},[result]'
make[2]: *** [volk/lib/CMakeFiles/volk.dir/__/kernels/volk/asm/neon/volk_32fc_32f_dot_prod_32fc_a_neonasmpipeline.s.o] Error 1
make[1]: *** [volk/lib/CMakeFiles/volk.dir/all] Error 2
make: *** [all] Error 2

Sean




From: discuss-gnuradio-bounces+sean.nowlan=address@hidden <discuss-gnuradio-bounces+sean.nowlan=address@hidden> on behalf of West, Nathan <address@hidden>
Sent: Saturday, September 20, 2014 11:25 AM
To: Philip Balister
Cc: GNURadio Discussion List; Mike Jameson; Michal Jakubiak
Subject: Re: [Discuss-gnuradio] Problems building GNURadio
 
I'm mobile at the moment, so can't be detailed... +1 to not disabling NEON. I'd rather point people towards the GNU radio wiki resources rather than random blog posts since they will inevitably be out of date (which this one definitely is) because the authors don't track GR development very closely. This page will be much more helpful: 
http://gnuradio.org/redmine/projects/gnuradio/wiki/embedded

That said, there were also changes to the build setup for ARM made yesterday, so it would be good to know what revision your building.

There have been a lot of changes to ARM builds recently, so patience and feedback are appreciated.

On Saturday, September 20, 2014, Philip Balister <address@hidden> wrote:
On 09/19/2014 12:08 PM, Mike Jameson wrote:
> This URL might help:
>
> https://labs.mwrinfosecurity.com/blog/2014/06/18/beaglebone-black-gnu-radio-and-hackrf-one/
>
> Have you tried disabling NEON?

Disabling NEON on this platform is a bad thing. Hopefully one of the
volk guys sees what is going on. I suspect you need to use the native
build toolchain file.

Philip

>
> Mike
>
> --
> Mike Jameson M0MIK BSc MIET
> Ettus Research Technical Support
> Email: address@hidden
> Web: http://ettus.com
>
> On Fri, Sep 19, 2014 at 4:29 PM, Michal Jakubiak <address@hidden> wrote:
>
>> I'm refreshing this one since I have a very similar problem. I'm trying to
>> build gr on BeagleBone Black, which is also an ARMv7. I'm using the
>> build-gnuradio script.
>>
>>
>>
>>> [  4%] Building C object volk/lib/CMakeFiles/volk.dir/volk_cpu.c.o
>>> [  4%] Building C object volk/lib/CMakeFiles/volk.dir/volk_machines.c.o
>>> [  4%] Building C object
>>> volk/lib/CMakeFiles/volk.dir/volk_machine_generic_orc.c.o
>>> [  4%] Building C object
>>> volk/lib/CMakeFiles/volk.dir/volk_machine_neon_hardfp_orc.c.o
>>> Linking C shared library libvolk.so
>>> [  4%] Built target volk
>>> [  4%] Building CXX object volk/lib/CMakeFiles/test_all.dir/testqa.cc.o
>>> [  4%] Building CXX object volk/lib/CMakeFiles/test_all.dir/qa_utils.cc.o
>>> Linking CXX executable test_all
>>> libvolk.so.0.0.0: undefined reference to
>>> `volk_32fc_x2_multiply_32fc_neonasm'
>>> libvolk.so.0.0.0: undefined reference to
>>> `volk_16i_max_star_horizontal_16i_neonasm'
>>> libvolk.so.0.0.0: undefined reference to
>>> `volk_32fc_32f_dot_prod_32fc_a_neonasm'
>>> libvolk.so.0.0.0: undefined reference to
>>> `volk_32f_x2_dot_prod_32f_neonasm_opts'
>>> libvolk.so.0.0.0: undefined reference to
>>> `volk_32fc_32f_dot_prod_32fc_a_neonpipeline'
>>> libvolk.so.0.0.0: undefined reference to
>>> `volk_32f_x2_dot_prod_32f_neonasm'
>>> collect2: ld returned 1 exit status
>>> make[2]: *** [volk/lib/test_all] Error 1
>>> make[1]: *** [volk/lib/CMakeFiles/test_all.dir/all] Error 2
>>> make: *** [all] Error 2
>>> make failed
>>> Exiting Gnu Radio build/install
>>
>>
>> I've edited the cmake command in the script:
>>
>> cmake -DENABLE_BAD_BOOST=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo $CMAKE_FLAG1
>> $CMAKE_FLAG2 $CMF1 $CMF2 -DCMAKE_C_FLAGS="-march=armv7-a -mthumb-interwork
>> -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9"
>> -DCMAKE_ASM-ATT_FLAGS="-march=armv7-a -mthumb-interwork -mfloat-abi=hard
>> -mfpu=neon" ../ >>$LOGDEV 2>&1
>>
>> Unfortunately, it had no effect. I'm out of ideas over here :/
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio




--
Doug Geiger
address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]