gnuradio / pybombs

PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
https://gnuradio.org
GNU General Public License v3.0
414 stars 189 forks source link

build fails in debian:buster container #546

Closed draeath closed 5 years ago

draeath commented 5 years ago

I am not sure if this is a pybombs build-script issue or a problem with volk itself. If this should be reported against gnuradio/volk instead, please do let me know and I'll do so.

I am attempting to build gnuradio in a container utilizing Debian Buster. I realize this effort is somewhat redundant, but hey - it's fun and it exposed a possible issue! I believe I have my dependencies in order, and am running into some gcc errors suggesting some changes to the build scripts for a modern gcc are now required. Notably, executions of gcc seem to need to have either -std=c++11 or -std=gnu++11 added to them, or the code needs adjustment to not use this "dialect." gcc 8.3.0 is in use in this particular case.

You can find the exact Dockerfile to replicate with (or inspect) here. To replicate, it should be sufficient to do the following, with either docker or podman/buildah installed:

git clone --no-checkout https://github.com/draeath/gnuradio.git draeath-gnuradio
pushd draeath-gnuradio
git checkout ca17df2
pushd gnr-dockerized
./build.sh

The first error encounted is as follows. Full build output will be attached.

Submodule path 'volk': checked out '17277ed3130e9b2592da06c681657e63b5590c56'
Configuring: (100%) []
Building:    (100%) []]
[  2%] Built target volk_obj
[  2%] Built target volk
[  2%] Built target volk_test_all
[  2%] Built target volk-config-info
[  2%] Built target volk_profile
[  2%] Built target pygen_volk_python_volk_modtool_1a742
[  2%] Built target pygen_volk_python_volk_modtool_5a79f
[  2%] Built target digital_generated_includes
[  3%] Built target blocks_generated_includes
[  4%] Built target filter_generated_includes
[  4%] Built target doxygen_target
[  4%] Built target pmt_generated
[  4%] Built target gnuradio-pmt
[  7%] Built target gnuradio-runtime
[  8%] Building CXX object gnuradio-runtime/lib/CMakeFiles/test-gnuradio-runtime.dir/math/qa_fxpt.cc.o
In file included from /usr/include/c++/8/type_traits:35,
                from /usr/include/cppunit/tools/StringHelper.h:7,
                from /usr/include/cppunit/TestAssert.h:8,
                from /usr/include/cppunit/TestCase.h:6,
                from /usr/include/cppunit/TestCaller.h:5,
                from /usr/include/cppunit/extensions/HelperMacros.h:9,
                from /home/bransfp/.gnuradio-default/src/gnuradio/gnuradio-runtime/lib/math/qa_fxpt.h:26,
                from /home/bransfp/.gnuradio-default/src/gnuradio/gnuradio-runtime/lib/math/qa_fxpt.cc:27:
/usr/include/c++/8/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

gnuradio-container-output.txt.gz

draeath commented 5 years ago

It's possible I'm a moron. I think I have recipes from 2018 (which reference volk 1.4) as they come with pybombs via pypi. I'm adding a recipes update and will update/close in a few hours depending on how it goes.

It's interesting the testing Dockerfiles do not do this from what I see?

draeath commented 5 years ago

Looks like pybombs default recipes pull in gnuradio 3.7.x, which uses volk 1.4 via submodule. We don't have a "released" gnuradio with volk 2.x (which fixes this issue) - need to use 3.8x pre-release.