kumquat-buildroot/package/gnuradio/Config.in
Gwenhael Goavec-Merou 34cea39024 package/gnuradio: restrict gcc to >= 8
With gnuradio 3.10 boost/filesystem was replaced by std::filesystem.
This feature was introduced with gcc 8 (requirering -lstdc++fs (with
gcc 9 explicit -lstdc++fs is no more explicitely required)).

With gcc < 8 build fails with error:

In file included from /home/br-user/work/instance-0/output-1/host/aarch64_be-buildroot-linux-gnu/sysroot/usr/include/boost/dll/runtime_symbol_info.hpp:11:0,
                 from /home/br-user/work/instance-0/output-1/build/gnuradio-3.10.4.0/buildroot-build/gnuradio-runtime/lib/constants.cc:16:
/home/br-user/work/instance-0/output-1/host/aarch64_be-buildroot-linux-gnu/sysroot/usr/include/boost/dll/config.hpp:42:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.

Add a dependency to gcc >= 8.

BR2_TOOLCHAIN_HAS_GCC_BUG_64735 only affects gcc <7, so we drop it.

Adding this restriction on gcc >= 8 also covers the dependency for volk,
which requires gcc >= 7, which was not propagated to gnuradio so far.

Tested with bootlin toolchain 2020.02-2 (gcc 8.3.0)

Fixes:
- http://autobuild.buildroot.net/results/6a82605c58f9ef9eb6c14603777dd8523dd00aa5/
- http://autobuild.buildroot.net/results/c7c4ae76954e388ab639b39fd521d90acfe4edc9/

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-12-10 18:13:23 +01:00

167 lines
4.6 KiB
Plaintext

comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 8"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_8
comment "gnuradio needs a toolchain not affected by GCC bug 43744"
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_43744
config BR2_PACKAGE_GNURADIO
bool "gnuradio"
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_USE_MMU # use fork()
depends on BR2_USE_WCHAR # boost
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic, boost-thread
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_43744
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_BOOST_ATOMIC
select BR2_PACKAGE_BOOST_DATE_TIME
select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
select BR2_PACKAGE_BOOST_REGEX
select BR2_PACKAGE_BOOST_SYSTEM
select BR2_PACKAGE_BOOST_THREAD
select BR2_PACKAGE_LOG4CPP
select BR2_PACKAGE_GMP
select BR2_PACKAGE_SPDLOG
select BR2_PACKAGE_VOLK
help
GNU Radio is a free & open-source software development
toolkit that provides signal processing blocks to implement
software radios. It can be used with readily-available
low-cost external RF hardware to create software-defined
radios, or without hardware in a simulation-like
environment. It is widely used in hobbyist, academic and
commercial environments to support both wireless
communications research and real-world radio systems.
http://gnuradio.org/
if BR2_PACKAGE_GNURADIO
config BR2_PACKAGE_GNURADIO_AUDIO
bool "gr-audio"
select BR2_PACKAGE_ALSA_LIB if !BR2_PACKAGE_PORTAUDIO
help
Add audio source/sink to GNU Radio
config BR2_PACKAGE_GNURADIO_BLOCKS
bool "blocks support"
help
GNU Radio basic block library
config BR2_PACKAGE_GNURADIO_CTRLPORT
bool "ctrlport support"
help
GNU Radio ctrlport block
config BR2_PACKAGE_GNURADIO_DTV
bool "gr-dtv support"
select BR2_PACKAGE_GNURADIO_ANALOG
select BR2_PACKAGE_GNURADIO_FEC
select BR2_PACKAGE_GNURADIO_FILTER
help
various digital television standards blocks
config BR2_PACKAGE_GNURADIO_FEC
bool "gr-fec support"
select BR2_PACKAGE_GNURADIO_BLOCKS
select BR2_PACKAGE_GSL
help
FEC signal processing blocks
config BR2_PACKAGE_GNURADIO_PYTHON
bool "python support"
depends on BR2_PACKAGE_PYTHON3
depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL # python-numpy
select BR2_PACKAGE_BOOST_PYTHON
select BR2_PACKAGE_PYTHON_NUMPY # runtime
select BR2_PACKAGE_PYTHON_PYBIND
select BR2_PACKAGE_PYTHON_SIX # runtime
help
Enable python component
comment "python support needs glibc or musl"
depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)
config BR2_PACKAGE_GNURADIO_UTILS
bool "gr-utils support"
depends on BR2_PACKAGE_GNURADIO_PYTHON
help
Misc python utilities
config BR2_PACKAGE_GNURADIO_ZEROMQ
bool "gr-zeromq support"
select BR2_PACKAGE_CPPZMQ
select BR2_PACKAGE_PYTHON_PYZMQ if BR2_PACKAGE_GNURADIO_PYTHON
help
zeromq communication support
config BR2_PACKAGE_GNURADIO_ANALOG
bool "gr-analog support"
select BR2_PACKAGE_GNURADIO_FILTER
help
Analog communications blocks
config BR2_PACKAGE_GNURADIO_CHANNELS
bool "gr-channels support"
select BR2_PACKAGE_GNURADIO_ANALOG
help
Channel model blocks
config BR2_PACKAGE_GNURADIO_DIGITAL
bool "gr-digital support"
select BR2_PACKAGE_GNURADIO_ANALOG
help
Digital communications blocks
config BR2_PACKAGE_GNURADIO_FFT
bool "gr-fft support"
select BR2_PACKAGE_FFTW
select BR2_PACKAGE_FFTW_SINGLE
select BR2_PACKAGE_GNURADIO_BLOCKS
help
FFT signal processing blocks
config BR2_PACKAGE_GNURADIO_FILTER
bool "gr-filter support"
select BR2_PACKAGE_GNURADIO_FFT
help
Filter signal processing blocks
config BR2_PACKAGE_GNURADIO_QTGUI
bool "gr-qtgui"
depends on BR2_PACKAGE_GNURADIO_PYTHON
depends on BR2_PACKAGE_QT5
select BR2_PACKAGE_GNURADIO_FFT
select BR2_PACKAGE_GNURADIO_FILTER
select BR2_PACKAGE_PYTHON_PYQT5
select BR2_PACKAGE_QT5BASE_FONTCONFIG # runtime
select BR2_PACKAGE_QT5BASE_GUI # runtime
select BR2_PACKAGE_QT5BASE_WIDGETS # runtime
select BR2_PACKAGE_QWT
help
GNU Radio Qt scopes
config BR2_PACKAGE_GNURADIO_TRELLIS
bool "gr-trellis support"
select BR2_PACKAGE_GNURADIO_DIGITAL
help
Trellis coded modulation blocks
config BR2_PACKAGE_GNURADIO_UHD
bool "gr-uhd support"
select BR2_PACKAGE_UHD
select BR2_PACKAGE_GNURADIO_ANALOG
select BR2_PACKAGE_GNURADIO_BLOCKS
select BR2_PACKAGE_GNURADIO_FILTER
help
UHD support
endif