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 <[email protected]>
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:* [email protected]
> <[email protected]> on behalf
> of West, Nathan <[email protected]>
> *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 <[email protected]>
> 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: [email protected] <http://owa/>
>> > Web: http://ettus.com
>> >
>> > On Fri, Sep 19, 2014 at 4:29 PM, Michal Jakubiak <[email protected]
>> <http://owa/>> 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
>> >> [email protected] <http://owa/>
>> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>> >>
>> >>
>> >
>> >
>> >
>> > _______________________________________________
>> > Discuss-gnuradio mailing list
>> > [email protected] <http://owa/>
>> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>> >
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> [email protected] <http://owa/>
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>


-- 
Doug Geiger
[email protected]
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to