[Debian-mobcom-maintainers] Bug#993701: srslte: FTBFS with libsoapysdr 0.8

Andreas Bombe aeb at debian.org
Sun Sep 5 00:51:13 BST 2021


Source: srslte
Version: 18.06.1+ds.1
Severity: important
Tags: ftbfs

I am building rdeps of libsoapysdr in preparation of the transition to
version 0.8. This version has changed the SoapySDRDevice_setupStream()
function signature to return the SoapySDRStream directly rather than
through a pointer:

    *   Recommended keys to use in the args dictionary:
    *    - "WIRE" - format of the samples between device and host
    * \endparblock
  - * \return 0 for success or error code on failure
  + * \return the stream pointer or nullptr for failure
    */
  -SOAPY_SDR_API int SoapySDRDevice_setupStream(SoapySDRDevice *device,
  -    SoapySDRStream **stream,
  +SOAPY_SDR_API SoapySDRStream *SoapySDRDevice_setupStream(SoapySDRDevice *device,
       const int direction,
       const char *format,
       const size_t *channels,

This change causes a build failure in srslte when building against the
new libsoapysdr. I can see upstream has already fixed that in their
sources. Log of the failed build:

/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c: In function 'rf_soapy_open_multi':
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:344:52: warning: passing argument 2 of 'SoapySDRDevice_setupStream' makes integer from pointer without a cast [-Wint-conversion]
  344 |     if(SoapySDRDevice_setupStream(handler->device, &(handler->rxStream), SOAPY_SDR_RX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                    ^~~~~~~~~~~~~~~~~~~~
      |                                                    |
      |                                                    SoapySDRStream **
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:307:15: note: expected 'int' but argument is of type 'SoapySDRStream **'
  307 |     const int direction,
      |     ~~~~~~~~~~^~~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:344:74: warning: passing argument 3 of 'SoapySDRDevice_setupStream' makes pointer from integer without a cast [-Wint-conversion]
  344 |     if(SoapySDRDevice_setupStream(handler->device, &(handler->rxStream), SOAPY_SDR_RX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                                          ^~~~~~~~~~~~
      |                                                                          |
      |                                                                          int
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:308:17: note: expected 'const char *' but argument is of type 'int'
  308 |     const char *format,
      |     ~~~~~~~~~~~~^~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:344:88: error: passing argument 4 of 'SoapySDRDevice_setupStream' from incompatible pointer type [-Werror=incompatible-pointer-types]
  344 |     if(SoapySDRDevice_setupStream(handler->device, &(handler->rxStream), SOAPY_SDR_RX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                                                        ^~~~~~~~~~~~~~
      |                                                                                        |
      |                                                                                        char *
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:309:19: note: expected 'const size_t *' {aka 'const long unsigned int *'} but argument is of type 'char *'
  309 |     const size_t *channels,
      |     ~~~~~~~~~~~~~~^~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:344:104: warning: passing argument 5 of 'SoapySDRDevice_setupStream' makes integer from pointer without a cast [-Wint-conversion]
  344 |     if(SoapySDRDevice_setupStream(handler->device, &(handler->rxStream), SOAPY_SDR_RX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                                                                        ^~~~
      |                                                                                                        |
      |                                                                                                        void *
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:310:18: note: expected 'size_t' {aka 'const long unsigned int'} but argument is of type 'void *'
  310 |     const size_t numChans,
      |     ~~~~~~~~~~~~~^~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:344:8: error: too many arguments to function 'SoapySDRDevice_setupStream'
  344 |     if(SoapySDRDevice_setupStream(handler->device, &(handler->rxStream), SOAPY_SDR_RX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:306:31: note: declared here
  306 | SOAPY_SDR_API SoapySDRStream *SoapySDRDevice_setupStream(SoapySDRDevice *device,
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:353:53: warning: passing argument 2 of 'SoapySDRDevice_setupStream' makes integer from pointer without a cast [-Wint-conversion]
  353 |     if (SoapySDRDevice_setupStream(handler->device, &(handler->txStream), SOAPY_SDR_TX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                     ^~~~~~~~~~~~~~~~~~~~
      |                                                     |
      |                                                     SoapySDRStream **
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:307:15: note: expected 'int' but argument is of type 'SoapySDRStream **'
  307 |     const int direction,
      |     ~~~~~~~~~~^~~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:353:89: error: passing argument 4 of 'SoapySDRDevice_setupStream' from incompatible pointer type [-Werror=incompatible-pointer-types]
  353 |     if (SoapySDRDevice_setupStream(handler->device, &(handler->txStream), SOAPY_SDR_TX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                                                         ^~~~~~~~~~~~~~
      |                                                                                         |
      |                                                                                         char *
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:309:19: note: expected 'const size_t *' {aka 'const long unsigned int *'} but argument is of type 'char *'
  309 |     const size_t *channels,
      |     ~~~~~~~~~~~~~~^~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:353:105: warning: passing argument 5 of 'SoapySDRDevice_setupStream' makes integer from pointer without a cast [-Wint-conversion]
  353 |     if (SoapySDRDevice_setupStream(handler->device, &(handler->txStream), SOAPY_SDR_TX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |                                                                                                         ^~~~
      |                                                                                                         |
      |                                                                                                         void *
In file included from /build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:37:
/usr/include/SoapySDR/Device.h:310:18: note: expected 'size_t' {aka 'const long unsigned int'} but argument is of type 'void *'
  310 |     const size_t numChans,
      |     ~~~~~~~~~~~~~^~~~~~~~
/build/srslte-18.06.1+ds.1/lib/src/phy/rf/rf_soapy_imp.c:353:9: error: too many arguments to function 'SoapySDRDevice_setupStream'
  353 |     if (SoapySDRDevice_setupStream(handler->device, &(handler->txStream), SOAPY_SDR_TX, SOAPY_SDR_CF32, NULL, 0, NULL) != 0) {
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~



More information about the Debian-mobcom-maintainers mailing list