ast / SoapyAirspy

Soapy SDR plugin for the Airspy
https://github.com/pothosware/SoapyAirspy/wiki
MIT License
4 stars 4 forks source link

Build error #6

Open janvgils opened 1 year ago

janvgils commented 1 year ago

After the cleanup from Juli 14th 2023 I have the following experience.

Building on a SoapySDR 0.7 environment (debian bullseye):

cmake -Wno-dev ../
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Module airspySupport configured with version: 0.2.0-12744c4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/janvg/source/git/ast/SoapyAirspy/build
janvg@canberra:~/source/git/ast/SoapyAirspy/build$ make
Scanning dependencies of target airspySupport
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp: In function ‘SoapySDR::Device* makeAirspy(const Kwargs&)’:
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp:78:30: warning: ‘new’ of type ‘SoapyAirspy’ with extended alignment 64 [-Waligned-new=]
   78 |   return new SoapyAirspy(args);
      |                              ^
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp:78:30: note: uses ‘void* operator new(std::size_t)’, which does not have an alignment parameter
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp:78:30: note: use ‘-faligned-new’ to enable C++17 over-aligned new support
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
In file included from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp: In constructor ‘SoapyAirspy::SoapyAirspy(const Kwargs&)’:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:76:10: warning: ‘SoapyAirspy::currentBandwidth_’ will be initialized after [-Wreorder]
   76 |   double currentBandwidth_;
      |          ^~~~~~~~~~~~~~~~~
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:67:9: warning:   ‘SoapyAirspy::Gains SoapyAirspy::gains_’ [-Wreorder]
   67 |   Gains gains_;
      |         ^~~~~~
/home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:29:1: warning:   when initialized here [-Wreorder]
   29 | SoapyAirspy::SoapyAirspy(const SoapySDR::Kwargs &args)
      | ^~~~~~~~~~~
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:39,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/RingBuffer.hpp: In instantiation of ‘RingBuffer<T>::RingBuffer(size_t) [with T = unsigned char; size_t = long unsigned int]’:
/home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:32:43:   required from here
/home/janvg/source/git/ast/SoapyAirspy/RingBuffer.hpp:27:53: error: use of deleted function ‘std::atomic<long unsigned int>::atomic(const std::atomic<long unsigned int>&)’
   27 |   cacheline_aligned std::atomic<size_t> read_pos_ = 0;
      |                                                     ^
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:32,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/atomic:828:7: note: declared here
  828 |       atomic(const atomic&) = delete;
      |       ^~~~~~
/usr/include/c++/10/atomic:832:17: note:   after user-defined conversion: ‘constexpr std::atomic<long unsigned int>::atomic(std::atomic<long unsigned int>::__integral_type)’
  832 |       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
      |                 ^~~~~~
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:39,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/RingBuffer.hpp:28:54: error: use of deleted function ‘std::atomic<long unsigned int>::atomic(const std::atomic<long unsigned int>&)’
   28 |   cacheline_aligned std::atomic<size_t> write_pos_ = 0;
      |                                                      ^
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:32,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/atomic:828:7: note: declared here
  828 |       atomic(const atomic&) = delete;
      |       ^~~~~~
/usr/include/c++/10/atomic:832:17: note:   after user-defined conversion: ‘constexpr std::atomic<long unsigned int>::atomic(std::atomic<long unsigned int>::__integral_type)’
  832 |       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
      |                 ^~~~~~
make[2]: *** [CMakeFiles/airspySupport.dir/build.make:95: CMakeFiles/airspySupport.dir/Settings.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/airspySupport.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

And this build isn't successful and can't be used.

Building on a SoapySDR 0.8 environment (debian trixie):

cmake -Wno-dev ../
-- The CXX compiler identification is GNU 12.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.40.1") 
-- Module airspySupport configured with version: 0.2.0-12744c4
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/janvg/source/git/ast/SoapyAirspy/build
janvg@goldstone:~/source/git/ast/SoapyAirspy/build$ make
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
In file included from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp: In constructor ‘SoapyAirspy::SoapyAirspy(const SoapySDR::Kwargs&)’:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:76:10: warning: ‘SoapyAirspy::currentBandwidth_’ will be initialized after [-Wreorder]
   76 |   double currentBandwidth_;
      |          ^~~~~~~~~~~~~~~~~
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:67:9: warning:   ‘SoapyAirspy::Gains SoapyAirspy::gains_’ [-Wreorder]
   67 |   Gains gains_;
      |         ^~~~~~
/home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:29:1: warning:   when initialized here [-Wreorder]
   29 | SoapyAirspy::SoapyAirspy(const SoapySDR::Kwargs &args)
      | ^~~~~~~~~~~
[ 60%] Building CXX object CMakeFiles/airspySupport.dir/Streaming.cpp.o
[ 80%] Building CXX object CMakeFiles/airspySupport.dir/Version.cpp.o
[100%] Linking CXX shared module libairspySupport.so
[100%] Built target airspySupport

And this library can be used, as can be seen after the following command:

SoapySDRUtil --probe="driver=airspy"
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Probe device driver=airspy
[DEBUG] SoapyAirspy::SoapyAirspy()
[DEBUG] SoapyAirspy::SoapyAirspy(driver) = airspy
[DEBUG] SoapyAirspy::SoapyAirspy(label) = AirSpy One [b58069dc396e3913]
[DEBUG] SoapyAirspy::SoapyAirspy(serial) = b58069dc396e3913
[DEBUG] Found AirSpy device: serial = b58069dc396e3913
[DEBUG] Supported sample rate: 2500000
[DEBUG] Supported sample rate: 10000000
[DEBUG] SoapyAirspy::setGain(1, 0, 0.000000)
[DEBUG] SoapyAirspy::listAntennas(1, 0)
[DEBUG] SoapyAirspy::hasDCOffsetMode(1, 0)
[DEBUG] getBandwidth: 0.000000
[DEBUG] listBandwidths(1, 0)

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=Airspy
  hardware=Airspy
  serial=b58069dc396e3913

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 0 Tx
  Timestamps: NO
  Other Settings:
     * Bias tee - Enable the 4.5v DC Bias tee to power SpyVerter / LNA / etc. via antenna connection.
       [key=biastee, default=false, type=bool]
     * Bit pack - Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB trafic.
       [key=bitpack, default=false, type=bool]
     * Gain Mode - linearity | sensitivity | manual
       [key=gainmode, default=linearity, type=int]

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: NO
  Supports AGC: YES
  Stream formats: CS16, CF32
  Native format: CS16 [full-scale=32767]
  Antennas: RX
  Full gain range: [0, 21] dB
    LIN gain range: [0, 21] dB
  Full freq range: [24, 1800] MHz
    RF freq range: [24, 1800] MHz
  Sample rates: 2.5, 10 MSps
  Filter bandwidths: 1.875, 7.5 MHz

Is this enough information to resolve this issue?

ast commented 1 year ago

Thanks Jan! This is very helpful. I'm only testing against 0.8 at the moment using gcc 11. Thanks for testing different platforms.

ast commented 1 year ago

This issue should be fixed now. 1232a06452de4676ea2beeecfb593e634e00832d fixes building with SoapySDR 0.7 and C++11.

janvgils commented 1 year ago

Let me check the latest source and build on both 0.7 and 0.8.

Firs 0.8:

cd source/git/ast/SoapyAirspy/
janvg@goldstone:~/source/git/ast/SoapyAirspy$ git pull
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 7 (delta 6), reused 7 (delta 6), pack-reused 0
Unpacking objects: 100% (7/7), 824 bytes | 82.00 KiB/s, done.
From https://github.com/ast/SoapyAirspy
   12744c4..1232a06  v2         -> origin/v2
Updating 12744c4..1232a06
Fast-forward
 CMakeLists.txt   |  2 ++
 Registration.cpp |  2 ++
 RingBuffer.hpp   |  4 ++--
 Settings.cpp     | 25 ++++++++++++-------------
 Streaming.cpp    |  1 +
 5 files changed, 19 insertions(+), 15 deletions(-)
janvg@goldstone:~/source/git/ast/SoapyAirspy$ cd build/
janvg@goldstone:~/source/git/ast/SoapyAirspy/build$ ls
janvg@goldstone:~/source/git/ast/SoapyAirspy/build$ cmake -Wno-dev ../
-- The CXX compiler identification is GNU 12.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.40.1") 
-- Module airspySupport configured with version: 0.2.0-1232a06
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/janvg/source/git/ast/SoapyAirspy/build
janvg@goldstone:~/source/git/ast/SoapyAirspy/build$ make 
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
[ 60%] Building CXX object CMakeFiles/airspySupport.dir/Streaming.cpp.o
[ 80%] Building CXX object CMakeFiles/airspySupport.dir/Version.cpp.o
[100%] Linking CXX shared module libairspySupport.so
[100%] Built target airspySupport

SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.8.1-3
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr
Search path:  /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.8
Search path:  /usr/local/lib/x86_64-linux-gnu/SoapySDR/modules0.8                (missing)
Search path:  /usr/local/lib/SoapySDR/modules0.8                                 (missing)
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.8/libairspySupport.so  (0.2.0-1232a06)

SoapySDRUtil --probe="driver=airspy"
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Probe device driver=airspy
[DEBUG] SoapyAirspy::SoapyAirspy()
[DEBUG] SoapyAirspy::SoapyAirspy(driver) = airspy
[DEBUG] SoapyAirspy::SoapyAirspy(label) = AirSpy One [b58069dc396e3913]
[DEBUG] SoapyAirspy::SoapyAirspy(serial) = b58069dc396e3913
[DEBUG] Found AirSpy device: serial = b58069dc396e3913
[DEBUG] Supported sample rate: 2500000
[DEBUG] Supported sample rate: 10000000
[DEBUG] SoapyAirspy::setGain(1, 0, 0.000000)
[DEBUG] SoapyAirspy::listAntennas(1, 0)
[DEBUG] SoapyAirspy::hasDCOffsetMode(1, 0)
[DEBUG] getBandwidth: 0.000000
[DEBUG] listBandwidths(1, 0)

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=Airspy
  hardware=Airspy
  serial=b58069dc396e3913

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 0 Tx
  Timestamps: NO
  Other Settings:
     * Bias tee - Enable the 4.5v DC Bias tee to power SpyVerter / LNA / etc. via antenna connection.
       [key=biastee, default=false, type=bool]
     * Bit pack - Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB traffic.
       [key=bitpack, default=false, type=bool]
     * Gain Mode - linearity | sensitivity | manual
       [key=gains, default=linearity, type=string]

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: NO
  Supports AGC: YES
  Stream formats: CS16, CF32
  Native format: CS16 [full-scale=32767]
  Antennas: RX
  Full gain range: [0, 21] dB
    LIN gain range: [0, 21] dB
  Full freq range: [24, 1800] MHz
    RF freq range: [24, 1800] MHz
  Sample rates: 2.5, 10 MSps
  Filter bandwidths: 1.875, 7.5 MHz

Looking good

Version 0.7:

cd source/git/ast/SoapyAirspy/
janvg@canberra:~/source/git/ast/SoapyAirspy$ git pull
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 7 (delta 6), reused 7 (delta 6), pack-reused 0
Unpacking objects: 100% (7/7), 824 bytes | 274.00 KiB/s, done.
From https://github.com/ast/SoapyAirspy
   12744c4..1232a06  v2         -> origin/v2
Updating 12744c4..1232a06
Fast-forward
 CMakeLists.txt   |  2 ++
 Registration.cpp |  2 ++
 RingBuffer.hpp   |  4 ++--
 Settings.cpp     | 25 ++++++++++++-------------
 Streaming.cpp    |  1 +
 5 files changed, 19 insertions(+), 15 deletions(-)
janvg@canberra:~/source/git/ast/SoapyAirspy$ cd build/
janvg@canberra:~/source/git/ast/SoapyAirspy/build$ ls
janvg@canberra:~/source/git/ast/SoapyAirspy/build$ cmake -Wno-dev ../
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Module airspySupport configured with version: 0.2.0-1232a06
-- Configuring done
-- Generating done
-- Build files have been written to: /home/janvg/source/git/ast/SoapyAirspy/build

SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.7.2-2
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path:  /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7
Search path:  /usr/local/lib/x86_64-linux-gnu/SoapySDR/modules0.7                (missing)
Search path:  /usr/local/lib/SoapySDR/modules0.7                                 (missing)
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7/libairspySupport.so  (0.2.0-1232a06)

SoapySDRUtil --probe="driver=airspy"
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Probe device driver=airspy
[DEBUG] SoapyAirspy::SoapyAirspy()
[DEBUG] SoapyAirspy::SoapyAirspy(driver) = airspy
[DEBUG] SoapyAirspy::SoapyAirspy(label) = AirSpy One [04a464c83670830b]
[DEBUG] SoapyAirspy::SoapyAirspy(serial) = 04a464c83670830b
[DEBUG] Found AirSpy device: serial = 4a464c83670830b
[DEBUG] Supported sample rate: 3000000
[DEBUG] Supported sample rate: 6000000
[DEBUG] SoapyAirspy::setGain(1, 0, 0.000000)
[DEBUG] SoapyAirspy::listAntennas(1, 0)
[DEBUG] SoapyAirspy::hasDCOffsetMode(1, 0)
[DEBUG] getBandwidth: 0.000000
[DEBUG] listBandwidths(1, 0)

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=Airspy
  hardware=Airspy
  serial=4a464c83670830b

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 0 Tx
  Timestamps: NO
  Other Settings:
     * Bias tee - Enable the 4.5v DC Bias tee to power SpyVerter / LNA / etc. via antenna connection.
       [key=biastee, default=false, type=bool]
     * Bit pack - Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB traffic.
       [key=bitpack, default=false, type=bool]
     * Gain Mode - linearity | sensitivity | manual
       [key=gains, default=linearity, type=string]

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Supports AGC: YES
  Stream formats: CS16, CF32
  Native format: CS16 [full-scale=32767]
  Antennas: RX
  Full gain range: [0, 21] dB
    LIN gain range: [0, 21] dB
  Full freq range: [24, 1800] MHz
    RF freq range: [24, 1800] MHz
  Sample rates: 3, 6 MSps
  Filter bandwidths: 2.25, 4.5 MHz

Both builds are find, now lets see how the observation will perform.

Thanks a lot Albin for this fix and the support.

janvgils commented 1 year ago

Below the build on a Pi3:

This is also Soapy 0.7

git pull
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 18 (delta 12), reused 18 (delta 12), pack-reused 0
Unpacking objects: 100% (18/18), 11.91 KiB | 259.00 KiB/s, done.
From https://github.com/ast/SoapyAirspy
   a9695d7..1232a06  v2         -> origin/v2
Updating a9695d7..1232a06
Fast-forward
 .clang-format          |  192 +++++++++
 CMakeLists.txt         |   77 ++--
 README.md              |   21 +-
 Registration.cpp       |   81 ++--
 RingBuffer.hpp         |  434 ++++++++++---------
 Settings.cpp           | 1081 ++++++++++++++++++++++++++----------------------
 SoapyAirspy.hpp        |  267 ++++++------
 Streaming.cpp          |  357 +++++++++-------
 airspy_fir_kernels.hpp |   43 ++
 9 files changed, 1458 insertions(+), 1095 deletions(-)
 create mode 100644 .clang-format
 create mode 100644 airspy_fir_kernels.hpp
lab@svalbard:~/source/git/ast/SoapyAirspy $ cd build/
lab@svalbard:~/source/git/ast/SoapyAirspy/build $ cmake -Wno-dev ../
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Module airspySupport configured with version: 0.2.0-1232a06
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lab/source/git/ast/SoapyAirspy/build
lab@svalbard:~/source/git/ast/SoapyAirspy/build $ make
Scanning dependencies of target airspySupport
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
In file included from /usr/include/c++/10/vector:72,
                 from /usr/include/SoapySDR/ConverterRegistry.hpp:17,
                 from /home/lab/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:26,
                 from /home/lab/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const double&}; _Tp = double; _Alloc = std::allocator<double>]’:
/usr/include/c++/10/bits/vector.tcc:426:7: note: parameter passing for argument of type ‘std::vector<double>::iterator’ changed in GCC 7.1
  426 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/SoapySDR/ConverterRegistry.hpp:17,
                 from /home/lab/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:26,
                 from /home/lab/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/bits/stl_vector.h: In member function ‘virtual std::vector<double> SoapyAirspy::listSampleRates(int, size_t) const’:
/usr/include/c++/10/bits/stl_vector.h:1198:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<double*, std::vector<double> >’ changed in GCC 7.1
 1198 |    _M_realloc_insert(end(), __x);
      |    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from /usr/include/c++/10/vector:72,
                 from /usr/include/SoapySDR/ConverterRegistry.hpp:17,
                 from /home/lab/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:26,
                 from /home/lab/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {SoapySDR::Range}; _Tp = SoapySDR::Range; _Alloc = std::allocator<SoapySDR::Range>]’:
/usr/include/c++/10/bits/vector.tcc:426:7: note: parameter passing for argument of type ‘std::vector<SoapySDR::Range>::iterator’ changed in GCC 7.1
  426 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/bits/vector.tcc: In member function ‘virtual SoapySDR::RangeList SoapyAirspy::getFrequencyRange(int, size_t, const string&) const’:
/usr/include/c++/10/bits/vector.tcc:121:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<SoapySDR::Range*, std::vector<SoapySDR::Range> >’ changed in GCC 7.1
  121 |    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
      |    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {double}; _Tp = double; _Alloc = std::allocator<double>]’:
/usr/include/c++/10/bits/vector.tcc:426:7: note: parameter passing for argument of type ‘std::vector<double>::iterator’ changed in GCC 7.1
  426 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/bits/vector.tcc: In member function ‘virtual std::vector<double> SoapyAirspy::listBandwidths(int, size_t) const’:
/usr/include/c++/10/bits/vector.tcc:121:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<double*, std::vector<double> >’ changed in GCC 7.1
  121 |    _M_realloc_insert(end(), std::forward<_Args>(__args)...);
      |    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const SoapySDR::ArgInfo&}; _Tp = SoapySDR::ArgInfo; _Alloc = std::allocator<SoapySDR::ArgInfo>]’:
/usr/include/c++/10/bits/vector.tcc:426:7: note: parameter passing for argument of type ‘std::vector<SoapySDR::ArgInfo>::iterator’ changed in GCC 7.1
  426 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/SoapySDR/ConverterRegistry.hpp:17,
                 from /home/lab/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:26,
                 from /home/lab/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/bits/stl_vector.h: In member function ‘virtual SoapySDR::ArgInfoList SoapyAirspy::getSettingInfo() const’:
/usr/include/c++/10/bits/stl_vector.h:1198:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<SoapySDR::ArgInfo*, std::vector<SoapySDR::ArgInfo> >’ changed in GCC 7.1
 1198 |    _M_realloc_insert(end(), __x);
      |    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1198:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<SoapySDR::ArgInfo*, std::vector<SoapySDR::ArgInfo> >’ changed in GCC 7.1
 1198 |    _M_realloc_insert(end(), __x);
      |    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1198:21: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<SoapySDR::ArgInfo*, std::vector<SoapySDR::ArgInfo> >’ changed in GCC 7.1
 1198 |    _M_realloc_insert(end(), __x);
      |    ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
[ 60%] Building CXX object CMakeFiles/airspySupport.dir/Streaming.cpp.o
[ 80%] Building CXX object CMakeFiles/airspySupport.dir/Version.cpp.o
[100%] Linking CXX shared module libairspySupport.so
[100%] Built target airspySupport

SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.7.2-2
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path:  /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7
Search path:  /usr/local/lib/arm-linux-gnueabihf/SoapySDR/modules0.7                 (missing)
Search path:  /usr/local/lib/SoapySDR/modules0.7                                     (missing)
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.7/libairspySupport.so   (0.2.0-1232a06)

Here we do see some warnings, at the moment there is no SDR nor antenna connected, so I can test the performance.

ast commented 1 year ago

Thanks for thorough testing. At a glance it looks like the warnings stem from a SoapySDR header. I will take a loon.