← Back to team overview

kicad-developers team mailing list archive

Re: swig/scripting breakage?

 

It looks like this is an issue with swig 2.0.11. It seems to be fixed
in swig 2.0.12 in [1]. This is further confirmed by a freebsd packager
in [2] removing the pathces against 2.0.11 to fix a similar issue.

I guess we can ignore this fine as we discussed earlier because 14.04
is very soon EOL or you can patch and rebuild swig on your system.

[1] https://github.com/swig/swig/commit/acc5a5eb2d9ba7ab95cf5bb22221ba503c249de1
[2] https://github.com/splbio/freebsd-ports/commit/895194e3657737d1f76550853b7571e886bb07dd

2016-04-06 3:03 GMT+02:00 Mark Roszko <mark.roszko@xxxxxxxxx>:
> So I believe the C++11 enabling broke this but I really haven't had
> the time to look into it.
> This is from the server I use purely for coverity builds. Its
> basically "clean' (no development junk).
>
>
> mroszko@ip-XXXXXXX:~$ lsb_release -a
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description:    Ubuntu 14.04.4 LTS
> Release:        14.04
> Codename:       trusty
>
>
>
>
> mroszko@ip-XXXXXXX:~$ gcc --version
> gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
>
>
>
>
>
> /home/mroszko/kicad/pcbnew/pcbnew_wrap.cxx: In function ‘PyObject*
> _wrap_str_utf8_Map_erase__SWIG_2(PyObject*, PyObject*)’:
> /home/mroszko/kicad/pcbnew/pcbnew_wrap.cxx:29887:26: error: no
> matching function for call to ‘std::map<std::basic_string<char>, UTF8,
> std::less<std::basic_string<char> >, std::allocator<std::pair<const
> std::basic_string<char>, UTF8> >
>>::erase(SwigValueWrapper<std::_Rb_tree_iterator<std::pair<const
> std::basic_string<char>, UTF8> > >&,
> SwigValueWrapper<std::_Rb_tree_iterator<std::pair<const
> std::basic_string<char>, UTF8> > >&)’
>    (arg1)->erase(arg2,arg3);
>                           ^
> /home/mroszko/kicad/pcbnew/pcbnew_wrap.cxx:29887:26: note: candidates are:
> In file included from /usr/include/c++/4.8/map:61:0,
>                  from /home/mroszko/kicad/pcbnew/pcbnew_wrap.cxx:4981:
> /usr/include/c++/4.8/bits/stl_map.h:690:7: note: std::map<_Key, _Tp,
> _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare,
> _Alloc>::erase(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator)
> [with _Key = std::basic_string<char>; _Tp = UTF8; _Compare =
> std::less<std::basic_string<char> >; _Alloc =
> std::allocator<std::pair<const std::basic_string<char>, UTF8> >;
> std::map<_Key, _Tp, _Compare, _Alloc>::iterator =
> std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, UTF8>
>>; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator =
> std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>,
> UTF8> >]
>        erase(const_iterator __position)
>        ^
> /usr/include/c++/4.8/bits/stl_map.h:690:7: note:   candidate expects 1
> argument, 2 provided
> /usr/include/c++/4.8/bits/stl_map.h:696:7: note: std::map<_Key, _Tp,
> _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare,
> _Alloc>::erase(std::map<_Key, _Tp, _Compare, _Alloc>::iterator) [with
> _Key = std::basic_string<char>; _Tp = UTF8; _Compare =
> std::less<std::basic_string<char> >; _Alloc =
> std::allocator<std::pair<const std::basic_string<char>, UTF8> >;
> std::map<_Key, _Tp, _Compare, _Alloc>::iterator =
> std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, UTF8>
>>]
>        erase(iterator __position)
>        ^
> /usr/include/c++/4.8/bits/stl_map.h:696:7: note:   candidate expects 1
> argument, 2 provided
> /usr/include/c++/4.8/bits/stl_map.h:726:7: note: std::map<_Key, _Tp,
> _Compare, _Alloc>::size_type std::map<_Key, _Tp, _Compare,
> _Alloc>::erase(const key_type&) [with _Key = std::basic_string<char>;
> _Tp = UTF8; _Compare = std::less<std::basic_string<char> >; _Alloc =
> std::allocator<std::pair<const std::basic_string<char>, UTF8> >;
> std::map<_Key, _Tp, _Compare, _Alloc>::size_type = long unsigned int;
> std::map<_Key, _Tp, _Compare, _Alloc>::key_type =
> std::basic_string<char>]
>
>        erase(const key_type& __x)
>        ^
> /usr/include/c++/4.8/bits/stl_map.h:726:7: note:   candidate expects 1
> argument, 2 provided
> /usr/include/c++/4.8/bits/stl_map.h:746:7: note: std::map<_Key, _Tp,
> _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare,
> _Alloc>::erase(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator,
> std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator) [with _Key =
> std::basic_string<char>; _Tp = UTF8; _Compare =
> std::less<std::basic_string<char> >; _Alloc =
> std::allocator<std::pair<const std::basic_string<char>, UTF8> >;
> std::map<_Key, _Tp, _Compare, _Alloc>::iterator =
> std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, UTF8>
>>; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator =
> std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>,
> UTF8> >]
>        erase(const_iterator __first, const_iterator __last)
>        ^
> /usr/include/c++/4.8/bits/stl_map.h:746:7: note:   no known conversion
> for argument 1 from
> ‘SwigValueWrapper<std::_Rb_tree_iterator<std::pair<const
> std::basic_string<char>, UTF8> > >’ to
> ‘std::map<std::basic_string<char>, UTF8,
> std::less<std::basic_string<char> >, std::allocator<std::pair<const
> std::basic_string<char>, UTF8> > >::const_iterator {aka
> std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>,
> UTF8> >}’
> make[2]: *** [pcbnew/CMakeFiles/pcbnew_kiface.dir/pcbnew_wrap.cxx.o] Error 1
> make[1]: *** [pcbnew/CMakeFiles/pcbnew_kiface.dir/all] Error 2
>
>
> Anyone have any thoughts?
>
> I am probably going to disable scripting for now.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp


Follow ups

References