Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

swig errors on latest GNURadio maint-3.8 #17

Closed
muaddib1984 opened this issue Aug 5, 2021 · 3 comments
Closed

swig errors on latest GNURadio maint-3.8 #17

muaddib1984 opened this issue Aug 5, 2021 · 3 comments

Comments

@muaddib1984
Copy link

muaddib1984 commented Aug 5, 2021

Hi there,
Thank you so much for maintaining this, I’ve used it for quite a while for educational reasons with students teaching them about ham radio and SDR!
Unfortunately I’m having build issues on my updated systems. This has definitely worked in the past, but after trying to build on some fresh systems I’m getting errors.

I have three different machines running the following:
Ubuntu 18.04
UHD 4.0
GNURadio maint-3.8
All three machines are source builds, only one is pybombs.
I’m getting the same swig errors when I run make, either through the manual build process or via pybombs.
Here's the full output:

[ 6%] Building CXX object lib/CMakeFiles/gnuradio-afsk.dir/afsk1200_impl.cc.o
[ 12%] Generating init.pyc
[ 12%] Built target pygen_apps_9a6dd
[ 18%] Building CXX object swig/CMakeFiles/_afsk_swig_doc_tag.dir/_afsk_swig_doc_tag.cpp.o
[ 25%] Generating init.pyo
[ 31%] Linking CXX executable _afsk_swig_doc_tag
[ 37%] Generating documentation with doxygen
[ 37%] Built target _afsk_swig_doc_tag
[ 43%] Building CXX object lib/CMakeFiles/gnuradio-afsk.dir/ax25decode_impl.cc.o
[ 43%] Built target pygen_python_0c3d5
[ 50%] Building CXX object lib/CMakeFiles/gnuradio-afsk.dir/aprs2inet_impl.cc.o
[ 50%] Built target doxygen_target
[ 56%] Generating doxygen xml for afsk_swig_doc docs
[ 62%] Generating python docstrings for afsk_swig_doc
[ 62%] Built target afsk_swig_swig_doc
Scanning dependencies of target afsk_swig_swig_compilation
[ 68%] Swig source afsk_swig.i
[ 68%] Built target afsk_swig_swig_compilation
[ 75%] Linking CXX shared library libgnuradio-afsk.so
[ 75%] Built target gnuradio-afsk
[ 81%] Building CXX object swig/CMakeFiles/afsk_swig.dir/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx.o
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx: In function ‘PyObject* _wrap_afsk1200_make(PyObject*, PyObject*, PyObject*)’:
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:5191:50: error: no match for ‘operator=’ (operand types are ‘SwigValueWrapper<std::shared_ptrgr::afsk::afsk1200 >’ and ‘gr::afsk::afsk1200::sptr {aka boost::shared_ptrgr::afsk::afsk1200}’)
result = gr::afsk::afsk1200::make(arg1,arg2);
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const SwigValueWrapper&) [with T = std::shared_ptrgr::afsk::afsk1200]
SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: no known conversion for argument 1 from ‘gr::afsk::afsk1200::sptr {aka boost::shared_ptrgr::afsk::afsk1200}’ to ‘const SwigValueWrapper<std::shared_ptrgr::afsk::afsk1200 >&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const T&) [with T = std::shared_ptrgr::afsk::afsk1200]
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return this; }
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: no known conversion for argument 1 from ‘gr::afsk::afsk1200::sptr {aka boost::shared_ptrgr::afsk::afsk1200}’ to ‘const std::shared_ptrgr::afsk::afsk1200&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:5201:117: error: invalid static_cast from type ‘SwigValueWrapper<std::shared_ptrgr::afsk::afsk1200 >’ to type ‘const sptr& {aka const boost::shared_ptrgr::afsk::afsk1200&}’
resultobj = SWIG_NewPointerObj((new gr::afsk::afsk1200::sptr(static_cast< const gr::afsk::afsk1200::sptr& >(result))), SWIGTYPE_p_std__shared_ptrT_gr__afsk__afsk1200_t, SWIG_POINTER_OWN | 0 );
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:1191:89: note: in definition of macro ‘SWIG_NewPointerObj’
#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
^~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx: In function ‘PyObject
_wrap_afsk1200_sptr_make(PyObject*, PyObject*, PyObject*)’:
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:5442:39: error: no match for ‘operator=’ (operand types are ‘SwigValueWrapper<std::shared_ptrgr::afsk::afsk1200 >’ and ‘gr::afsk::afsk1200::sptr {aka boost::shared_ptrgr::afsk::afsk1200}’)
result = (arg1)->make(arg2,arg3);
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const SwigValueWrapper&) [with T = std::shared_ptrgr::afsk::afsk1200]
SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: no known conversion for argument 1 from ‘gr::afsk::afsk1200::sptr {aka boost::shared_ptrgr::afsk::afsk1200}’ to ‘const SwigValueWrapper<std::shared_ptrgr::afsk::afsk1200 >&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const T&) [with T = std::shared_ptrgr::afsk::afsk1200]
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return this; }
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: no known conversion for argument 1 from ‘gr::afsk::afsk1200::sptr {aka boost::shared_ptrgr::afsk::afsk1200}’ to ‘const std::shared_ptrgr::afsk::afsk1200&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:5452:117: error: invalid static_cast from type ‘SwigValueWrapper<std::shared_ptrgr::afsk::afsk1200 >’ to type ‘const sptr& {aka const boost::shared_ptrgr::afsk::afsk1200&}’
resultobj = SWIG_NewPointerObj((new gr::afsk::afsk1200::sptr(static_cast< const gr::afsk::afsk1200::sptr& >(result))), SWIGTYPE_p_std__shared_ptrT_gr__afsk__afsk1200_t, SWIG_POINTER_OWN | 0 );
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:1191:89: note: in definition of macro ‘SWIG_NewPointerObj’
#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
^~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx: In function ‘PyObject
_wrap_ax25decode_make(PyObject
, PyObject*, PyObject*)’:
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:8576:52: error: no match for ‘operator=’ (operand types are ‘SwigValueWrapper<std::shared_ptrgr::afsk::ax25decode >’ and ‘gr::afsk::ax25decode::sptr {aka boost::shared_ptrgr::afsk::ax25decode}’)
result = gr::afsk::ax25decode::make(arg1,arg2);
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const SwigValueWrapper&) [with T = std::shared_ptrgr::afsk::ax25decode]
SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: no known conversion for argument 1 from ‘gr::afsk::ax25decode::sptr {aka boost::shared_ptrgr::afsk::ax25decode}’ to ‘const SwigValueWrapper<std::shared_ptrgr::afsk::ax25decode >&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const T&) [with T = std::shared_ptrgr::afsk::ax25decode]
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return this; }
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: no known conversion for argument 1 from ‘gr::afsk::ax25decode::sptr {aka boost::shared_ptrgr::afsk::ax25decode}’ to ‘const std::shared_ptrgr::afsk::ax25decode&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:8586:121: error: invalid static_cast from type ‘SwigValueWrapper<std::shared_ptrgr::afsk::ax25decode >’ to type ‘const sptr& {aka const boost::shared_ptrgr::afsk::ax25decode&}’
resultobj = SWIG_NewPointerObj((new gr::afsk::ax25decode::sptr(static_cast< const gr::afsk::ax25decode::sptr& >(result))), SWIGTYPE_p_std__shared_ptrT_gr__afsk__ax25decode_t, SWIG_POINTER_OWN | 0 );
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:1191:89: note: in definition of macro ‘SWIG_NewPointerObj’
#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
^~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx: In function ‘PyObject
_wrap_ax25decode_sptr_make(PyObject*, PyObject*, PyObject*)’:
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:8827:39: error: no match for ‘operator=’ (operand types are ‘SwigValueWrapper<std::shared_ptrgr::afsk::ax25decode >’ and ‘gr::afsk::ax25decode::sptr {aka boost::shared_ptrgr::afsk::ax25decode}’)
result = (arg1)->make(arg2,arg3);
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const SwigValueWrapper&) [with T = std::shared_ptrgr::afsk::ax25decode]
SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: no known conversion for argument 1 from ‘gr::afsk::ax25decode::sptr {aka boost::shared_ptrgr::afsk::ax25decode}’ to ‘const SwigValueWrapper<std::shared_ptrgr::afsk::ax25decode >&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const T&) [with T = std::shared_ptrgr::afsk::ax25decode]
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return this; }
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: no known conversion for argument 1 from ‘gr::afsk::ax25decode::sptr {aka boost::shared_ptrgr::afsk::ax25decode}’ to ‘const std::shared_ptrgr::afsk::ax25decode&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:8837:121: error: invalid static_cast from type ‘SwigValueWrapper<std::shared_ptrgr::afsk::ax25decode >’ to type ‘const sptr& {aka const boost::shared_ptrgr::afsk::ax25decode&}’
resultobj = SWIG_NewPointerObj((new gr::afsk::ax25decode::sptr(static_cast< const gr::afsk::ax25decode::sptr& >(result))), SWIGTYPE_p_std__shared_ptrT_gr__afsk__ax25decode_t, SWIG_POINTER_OWN | 0 );
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:1191:89: note: in definition of macro ‘SWIG_NewPointerObj’
#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
^~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx: In function ‘PyObject
_wrap_aprs2inet_make(PyObject
, PyObject*, PyObject*)’:
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:11959:51: error: no match for ‘operator=’ (operand types are ‘SwigValueWrapper<std::shared_ptrgr::afsk::aprs2inet >’ and ‘gr::afsk::aprs2inet::sptr {aka boost::shared_ptrgr::afsk::aprs2inet}’)
result = gr::afsk::aprs2inet::make(arg1,arg2);
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const SwigValueWrapper&) [with T = std::shared_ptrgr::afsk::aprs2inet]
SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: no known conversion for argument 1 from ‘gr::afsk::aprs2inet::sptr {aka boost::shared_ptrgr::afsk::aprs2inet}’ to ‘const SwigValueWrapper<std::shared_ptrgr::afsk::aprs2inet >&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const T&) [with T = std::shared_ptrgr::afsk::aprs2inet]
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return this; }
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: no known conversion for argument 1 from ‘gr::afsk::aprs2inet::sptr {aka boost::shared_ptrgr::afsk::aprs2inet}’ to ‘const std::shared_ptrgr::afsk::aprs2inet&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:11969:119: error: invalid static_cast from type ‘SwigValueWrapper<std::shared_ptrgr::afsk::aprs2inet >’ to type ‘const sptr& {aka const boost::shared_ptrgr::afsk::aprs2inet&}’
resultobj = SWIG_NewPointerObj((new gr::afsk::aprs2inet::sptr(static_cast< const gr::afsk::aprs2inet::sptr& >(result))), SWIGTYPE_p_std__shared_ptrT_gr__afsk__aprs2inet_t, SWIG_POINTER_OWN | 0 );
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:1191:89: note: in definition of macro ‘SWIG_NewPointerObj’
#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
^~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx: In function ‘PyObject
_wrap_aprs2inet_sptr_make(PyObject*, PyObject*, PyObject*)’:
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:12208:39: error: no match for ‘operator=’ (operand types are ‘SwigValueWrapper<std::shared_ptrgr::afsk::aprs2inet >’ and ‘gr::afsk::aprs2inet::sptr {aka boost::shared_ptrgr::afsk::aprs2inet}’)
result = (*arg1)->make(arg2,arg3);
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const SwigValueWrapper&) [with T = std::shared_ptrgr::afsk::aprs2inet]
SwigValueWrapper& operator=(const SwigValueWrapper& rhs);
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:32:21: note: no known conversion for argument 1 from ‘gr::afsk::aprs2inet::sptr {aka boost::shared_ptrgr::afsk::aprs2inet}’ to ‘const SwigValueWrapper<std::shared_ptrgr::afsk::aprs2inet >&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: candidate: SwigValueWrapper& SwigValueWrapper::operator=(const T&) [with T = std::shared_ptrgr::afsk::aprs2inet]
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
^~~~~~~~
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:36:21: note: no known conversion for argument 1 from ‘gr::afsk::aprs2inet::sptr {aka boost::shared_ptrgr::afsk::aprs2inet}’ to ‘const std::shared_ptrgr::afsk::aprs2inet&’
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:12218:119: error: invalid static_cast from type ‘SwigValueWrapper<std::shared_ptrgr::afsk::aprs2inet >’ to type ‘const sptr& {aka const boost::shared_ptrgr::afsk::aprs2inet&}’
resultobj = SWIG_NewPointerObj((new gr::afsk::aprs2inet::sptr(static_cast< const gr::afsk::aprs2inet::sptr& >(result))), SWIGTYPE_p_std__shared_ptrT_gr__afsk__aprs2inet_t, SWIG_POINTER_OWN | 0 );
^
/home/user/gr-ax25/build/swig/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx:1191:89: note: in definition of macro ‘SWIG_NewPointerObj’
#define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
^~~
swig/CMakeFiles/afsk_swig.dir/build.make:75: recipe for target 'swig/CMakeFiles/afsk_swig.dir/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx.o' failed
make[2]: *** [swig/CMakeFiles/afsk_swig.dir/CMakeFiles/afsk_swig.dir/afsk_swigPYTHON_wrap.cxx.o] Error 1
CMakeFiles/Makefile2:358: recipe for target 'swig/CMakeFiles/afsk_swig.dir/all' failed
make[1]: *** [swig/CMakeFiles/afsk_swig.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2

Can you confirm your GNURadio 3.8 branch still works with the latest maint-3.8

@dl1ksv
Copy link
Owner

dl1ksv commented Aug 6, 2021

No, I can't check this, as I don't have such an old gnuradio installation.
gnuradio changed from boost::shared_ptr to std::shared_ptr. This transition took place from 3.8 to 3.9.
And swig was removed meanwhile.

My code reflects this in

#ifdef BOOST_SHARED_PTR
typedef boost::shared_ptr< afsk1200 > sptr;
#else
typedef std::shared_ptr< afsk1200 > sptr;
#endif

and

gr-ax25/CMakeLists.txt

Lines 78 to 80 in 6589f63

if(Gnuradio_VERSION VERSION_LESS "3.9")
add_definitions(-DBOOST_SHARED_PTR)
endif()

As you mentioned, that it worked before your update, I think it's a swig problem, as your output suggest that swigs generates
std::shared_pointer and boost::shared_pointer
I suggest you change

#ifdef BOOST_SHARED_PTR
typedef boost::shared_ptr< afsk1200 > sptr;
#else
typedef std::shared_ptr< afsk1200 > sptr;
#endif

typedef boost::shared_ptr< afsk1200 > sptr;

in
gr-ax25/include/afsk/afsk1200.h
gr-ax25/include/afsk/aprs2inet.h
gr-ax25/include/afsk/ax25decode.h

I hope, this helps.

@muaddib1984
Copy link
Author

muaddib1984 commented Aug 6, 2021 via email

@dl1ksv
Copy link
Owner

dl1ksv commented Aug 8, 2021

Thanks for reporting and testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants