discuss-gnuradio
[Top][All Lists]
Advanced

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

RE: Building gnuradio and hooking into neonv8


From: John Langworthy
Subject: RE: Building gnuradio and hooking into neonv8
Date: Sat, 30 May 2020 13:56:38 +0100

Hi Ron,

 

Just seen your last. I had written this before you sent it, but thought worth sharing anyway....

 

Building volk with that toolchain does fail, see directly below. See also further down, cmake output from volk without it (which is successful).

 

(gr_py36) pi@raspberry:~/volk/build$ cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=~/.conda/envs/gr_py36/python3/bin -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/arm_cortex_a72_hardfp_native.cmake ../

-- The C compiler identification is GNU 7.5.0

-- The CXX compiler identification is GNU 7.5.0

-- Check for working C compiler: /usr/bin/gcc

-- Check for working C compiler: /usr/bin/gcc -- broken

CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message):

  The C compiler

 

    "/usr/bin/gcc"

 

  is not able to compile a simple test program.

 

  It fails with the following output:

 

    Change Dir: /home/pi/volk/build/CMakeFiles/CMakeTmp

   

    Run Build Command:"/usr/bin/make" "cmTC_ba179/fast"

    /usr/bin/make -f CMakeFiles/cmTC_ba179.dir/build.make CMakeFiles/cmTC_ba179.dir/build

    make[1]: Entering directory '/home/pi/volk/build/CMakeFiles/CMakeTmp'

    Building C object CMakeFiles/cmTC_ba179.dir/testCCompiler.c.o

    /usr/bin/gcc   -march=armv8-a -mtune=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard    -o CMakeFiles/cmTC_ba179.dir/testCCompiler.c.o   -c /home/pi/volk/build/CMakeFiles/CMakeTmp/testCCompiler.c

    gcc: error: unrecognized command line option ‘-mfpu=neon-fp-armv8’

    gcc: error: unrecognized command line option ‘-mfloat-abi=hard’

    CMakeFiles/cmTC_ba179.dir/build.make:65: recipe for target 'CMakeFiles/cmTC_ba179.dir/testCCompiler.c.o' failed

    make[1]: *** [CMakeFiles/cmTC_ba179.dir/testCCompiler.c.o] Error 1

    make[1]: Leaving directory '/home/pi/volk/build/CMakeFiles/CMakeTmp'

    Makefile:126: recipe for target 'cmTC_ba179/fast' failed

    make: *** [cmTC_ba179/fast] Error 2

   

  CMake will not be able to correctly generate this project.

Call Stack (most recent call first):

  CMakeLists.txt:23 (project)

 

-- Configuring incomplete, errors occurred!

 

 

 

 

 

Without the toolchain, I get:

 

(gr_py36) pi@raspberry:~/volk/build$ cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=~/.conda/envs/gr_py36/bin/python3.6 ../

-- Build type set to Release.

-- Extracting version information from git describe...

--

-- Python checking for python >= 3.4

-- Python checking for python >= 3.4 - found

--

-- Python checking for mako >= 0.4.2

-- Python checking for mako >= 0.4.2 - found

-- Looking for C++ include filesystem

-- Looking for C++ include filesystem - not found

-- Looking for C++ include experimental/filesystem

-- Looking for C++ include experimental/filesystem - found

-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED

-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Failed

-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED

-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED - Success

-- Looking for aligned_alloc

-- Looking for aligned_alloc - found

-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")

-- Checking for module 'orc-0.4 > 0.4.11'

--   No package 'orc-0.4' found

-- orc files (missing: ORC_LIBRARY ORC_INCLUDE_DIR ORCC_EXECUTABLE)

-- Found Doxygen: /usr/bin/doxygen (found version "1.8.13") found components:  doxygen missing components:  dot

-- QA Testing is enabled.

--   Modify using: -DENABLE_TESTING=ON/OFF

-- System profiling is disabled.

--   Modify using: -DENABLE_PROFILING=ON/OFF

-- Looking for cpuid.h

-- Looking for cpuid.h - not found

-- Looking for intrin.h

-- Looking for intrin.h - not found

-- Looking for fenv.h

-- Looking for fenv.h - found

-- Looking for dlfcn.h

-- Looking for dlfcn.h - found

-- Compiler name: GNU

-- Performing Test HAVE_WERROR_UNUSED_CMD_LINE_ARG

-- Performing Test HAVE_WERROR_UNUSED_CMD_LINE_ARG - Failed

-- Performing Test have_mfloat_abi_softfp

-- Performing Test have_mfloat_abi_softfp - Failed

-- Performing Test have_mfloat_abi_hard

-- Performing Test have_mfloat_abi_hard - Failed

-- Performing Test have_funsafe_math_optimizations

-- Performing Test have_funsafe_math_optimizations - Success

-- Performing Test have_mfpu_neon

-- Performing Test have_mfpu_neon - Failed

-- Performing Test have_m32

-- Performing Test have_m32 - Failed

-- Performing Test have_m64

-- Performing Test have_m64 - Failed

-- Performing Test have_m3dnow

-- Performing Test have_m3dnow - Failed

-- Performing Test have_msse4_2

-- Performing Test have_msse4_2 - Failed

-- Performing Test have_mpopcnt

-- Performing Test have_mpopcnt - Failed

-- Performing Test have_mmmx

-- Performing Test have_mmmx - Failed

-- Performing Test have_mfma

-- Performing Test have_mfma - Failed

-- Performing Test have_msse

-- Performing Test have_msse - Failed

-- Performing Test have_msse2

-- Performing Test have_msse2 - Failed

-- Performing Test have_msse3

-- Performing Test have_msse3 - Failed

-- Performing Test have_mssse3

-- Performing Test have_mssse3 - Failed

-- Performing Test have_msse4a

-- Performing Test have_msse4a - Failed

-- Performing Test have_msse4_1

-- Performing Test have_msse4_1 - Failed

-- Performing Test have_mavx

-- Performing Test have_mavx - Failed

-- Performing Test have_mavx2

-- Performing Test have_mavx2 - Failed

-- Performing Test have_mavx512f

-- Performing Test have_mavx512f - Failed

-- Performing Test have_mavx512cd

-- Performing Test have_mavx512cd - Failed

-- Architecture is not x86 or x86_64, Overruled arch 3dnow

-- Architecture is not x86 or x86_64, Overruled arch mmx

-- Architecture is not x86 or x86_64, Overruled arch sse

-- Architecture is not x86 or x86_64, Overruled arch sse2

-- Architecture is not x86 or x86_64, Overruled arch sse3

-- Architecture is not x86 or x86_64, Overruled arch ssse3

-- Architecture is not x86 or x86_64, Overruled arch sse4_a

-- Architecture is not x86 or x86_64, Overruled arch sse4_1

-- Architecture is not x86 or x86_64, Overruled arch sse4_2

-- Architecture is not x86 or x86_64, Overruled arch avx

-- Architecture is not x86 or x86_64, Overruled arch avx512f

-- Architecture is not x86 or x86_64, Overruled arch avx512cd

-- Performing Test neon_compile_result

-- Performing Test neon_compile_result - Success

-- Performing Test have_neonv7_result

-- Performing Test have_neonv7_result - Failed

-- Performing Test have_neonv8_result

-- Performing Test have_neonv8_result - Success

-- Compiler doesn't support neonv7, Overruled arch neonv7

-- ORC support not found, Overruled arch orc

-- Available architectures: generic;neon;neonv8;norc

-- Available machines: generic;neon;neonv8

-- BUILD TYPE = RELEASE

-- Base cflags = -O3 -DNDEBUG  -fcx-limited-range -Wall

-- BUILD INFO ::: generic ::: GNU ::: -O3 -DNDEBUG  -fcx-limited-range -Wall

-- BUILD INFO ::: neon ::: GNU ::: -O3 -DNDEBUG  -fcx-limited-range -Wall -funsafe-math-optimizations

-- BUILD INFO ::: neonv8 ::: GNU ::: -O3 -DNDEBUG  -fcx-limited-range -Wall -funsafe-math-optimizations -funsafe-math-optimizations

-- Compiler Version: cc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0

Copyright (C) 2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

-- The ASM compiler identification is GNU

-- Found assembler: /usr/bin/cc

-- c flags:  -fcx-limited-range -Wall;

-- asm flags:

-- c flags:  -fcx-limited-range -Wall;

-- asm flags:

-- Did not find liborc and orcc, disabling orc support...

-- Loading version 2.3 into constants...

-- Using install prefix: /usr/local

-- Configuring done

-- Generating done

-- Build files have been written to: /home/pi/volk/build

 

 

From: Ron Economos
Sent: 30 May 2020 11:48
To: discuss-gnuradio@gnu.org
Subject: Re: Building gnuradio and hooking into neonv8

 

It's selecting neonv8, but you can do better. Since you're compiling from source, you can use a newer version of volk (which detects ARM CPU type better).

cd gnuradio/volk

git checkout v2.3.0

Then use this RPi4 specific cmake invocation. Be sure to delete the contents of your build directory first.

cmake -DCMAKE_TOOLCHAIN_FILE=../volk/cmake/Toolchains/arm_cortex_a72_hardfp_native.cmake ../

Give it a try and post your cmake result.

Also, you should install orc. Some kernels can be faster with orc.

sudo apt-get install liborc-0.4-dev

Ron

On 5/30/20 03:06, John Langworthy wrote:

Hi,

 

I am trying to build gnuradio 3.8.10 on a raspberry pi 4 under 64 bit ubuntu server. I am unconvinced from the cmake output that it is going to plan.

I know I could cross-compile, I’ll do that later.

 

Environment:

gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0

Linux raspberry 5.3.0-1026-raspi2 #28~18.04.1-Ubuntu SMP Thu May 21 14:48:58 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

 

What I don’t understand is whether the code (volk) will be built to hook into neon properly. The thing that is irking me in cmake’s output is:

 

-- CPU is armv8, Overruled arch neonv7

 

What does this mean?

 

 

The full cmake output is listed below.  I’d be very grateful if someone can tell me if this is good or bad.

 

Thank you!

 

 

 


reply via email to

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