Previous Thread
Next Thread
Print Thread
#109750 - 06/01/17 11:30 PM 0.186 Compile fail on Pi3  
Joined: Aug 2015
Posts: 40
ChoccyHobNob Offline
Member
ChoccyHobNob  Offline
Member

Joined: Aug 2015
Posts: 40
Fractalus
I thought this might be a pi issue so I've run this twice now with a make clean in between. Same result both times.

Code
Compiling src/devices/cpu/v60/v60.cpp...
Compiling src/devices/cpu/v810/v810.cpp...
Compiling src/devices/cpu/x86log.cpp...
Compiling src/devices/cpu/z180/z180.cpp...
Compiling src/devices/cpu/z8/z8.cpp...
Compiling src/devices/cpu/z80/kl5c80a12.cpp...
Compiling src/devices/cpu/z80/tmpz84c011.cpp...
Compiling src/devices/cpu/z80/tmpz84c015.cpp...
Compiling src/devices/cpu/z80/z80.cpp...
Compiling src/devices/cpu/z80/z80daisy.cpp...
Compiling src/devices/cpu/z8000/z8000.cpp...
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h: In instantiation of ‘void std::unique_ptr<_Tp [], _Dp>::reset(_Up) [with _Up = z8002_device::Z8000_exec*; <template-parameter-2-2> = void; _Tp = const z8002_device::Z8000_exec; _Dp = std::default_delete<const z8002_device::Z8000_exec []>]’:
/usr/include/c++/6/bits/unique_ptr.h:539:9:   required from ‘typename std::enable_if<std::__and_<std::__and_<std::is_array<_Up>, std::is_same<typename std::unique_ptr<_Tp [], _Dp>::_Pointer::type, _Tp*>, std::is_same<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::unique_ptr<_Up, _Ep>::element_type*>, std::is_convertible<typename std::unique_ptr<_Up, _Ep>::element_type (*)[], _Tp (*)[]>, std::__or_<std::__and_<std::is_reference<_Dp>, std::is_same<_T2, _U2> >, std::__and_<std::__not_<std::is_reference<_Dp> >, std::is_convertible<_Ep, _Dp> > > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp [], _Dp>&>::type std::unique_ptr<_Tp [], _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = z8002_device::Z8000_exec []; _Ep = std::default_delete<z8002_device::Z8000_exec []>; _Tp = const z8002_device::Z8000_exec; _Dp = std::default_delete<const z8002_device::Z8000_exec []>; typename std::enable_if<std::__and_<std::__and_<std::is_array<_Up>, std::is_same<typename std::unique_ptr<_Tp [], _Dp>::_Pointer::type, _Tp*>, std::is_same<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::unique_ptr<_Up, _Ep>::element_type*>, std::is_convertible<typename std::unique_ptr<_Up, _Ep>::element_type (*)[], _Tp (*)[]>, std::__or_<std::__and_<std::is_reference<_Dp>, std::is_same<_T2, _U2> >, std::__and_<std::__not_<std::is_reference<_Dp> >, std::is_convertible<_Ep, _Dp> > > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp [], _Dp>&>::type = std::unique_ptr<const z8002_device::Z8000_exec []>&]’
../../../../../src/devices/cpu/z8000/z8000tbl.hxx:578:29:   required from here
/usr/include/c++/6/bits/unique_ptr.h:614:6: error: no matching function for call to ‘swap(const z8002_device::Z8000_exec*&, z8002_device::Z8000_exec*&)’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/stl_pair.h:59:0,
                 from /usr/include/c++/6/bits/stl_algobase.h:64,
                 from /usr/include/c++/6/list:60,
                 from ../../../../../src/emu/emu.h:21:
/usr/include/c++/6/bits/move.h:179:5: note: candidate: template<class _Tp> typename std::enable_if<std::__and_<std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> >::value>::type std::swap(_Tp&, _Tp&)
     swap(_Tp& __a, _Tp& __b)
     ^~~~
/usr/include/c++/6/bits/move.h:179:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   deduced conflicting types for parameter ‘_Tp’ (‘const z8002_device::Z8000_exec*’ and ‘z8002_device::Z8000_exec*’)
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/stl_pair.h:59:0,
                 from /usr/include/c++/6/bits/stl_algobase.h:64,
                 from /usr/include/c++/6/list:60,
                 from ../../../../../src/emu/emu.h:21:
/usr/include/c++/6/bits/move.h:202:5: note: candidate: template<class _Tp, unsigned int _Nm> typename std::enable_if<std::__is_swappable<_Tp>::value>::type std::swap(_Tp (&)[_Nm], _Tp (&)[_Nm])
     swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
     ^~~~
/usr/include/c++/6/bits/move.h:202:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘_Tp [_Nm]’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6/list:60,
                 from ../../../../../src/emu/emu.h:21:
/usr/include/c++/6/bits/stl_pair.h:471:5: note: candidate: template<class _T1, class _T2> void std::swap(std::pair<_T1, _T2>&, std::pair<_T1, _T2>&)
     swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
     ^~~~
/usr/include/c++/6/bits/stl_pair.h:471:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::pair<_T1, _T2>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/list:63:0,
                 from ../../../../../src/emu/emu.h:21:
/usr/include/c++/6/bits/stl_list.h:1918:5: note: candidate: template<class _Tp, class _Alloc> void std::swap(std::__cxx11::list<_Tp, _Alloc>&, std::__cxx11::list<_Tp, _Alloc>&)
     swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
     ^~~~
/usr/include/c++/6/bits/stl_list.h:1918:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::__cxx11::list<_Tp, _Alloc>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
                 from ../../../../../src/emu/emu.h:22:
/usr/include/c++/6/bits/stl_vector.h:1557:5: note: candidate: template<class _Tp, class _Alloc> void std::swap(std::vector<_Tp, _Alloc>&, std::vector<_Tp, _Alloc>&)
     swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
     ^~~~
/usr/include/c++/6/bits/stl_vector.h:1557:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::vector<_Tp, _Alloc>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:65:0,
                 from ../../../../../src/emu/emu.h:22:
/usr/include/c++/6/bits/stl_bvector.h:112:3: note: candidate: void std::swap(std::_Bit_reference, std::_Bit_reference)
   swap(_Bit_reference __x, _Bit_reference __y) noexcept
   ^~~~
/usr/include/c++/6/bits/stl_bvector.h:112:3: note:   no known conversion for argument 1 from ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’ to ‘std::_Bit_reference’
/usr/include/c++/6/bits/stl_bvector.h:120:3: note: candidate: void std::swap(std::_Bit_reference, bool&)
   swap(_Bit_reference __x, bool& __y) noexcept
   ^~~~
/usr/include/c++/6/bits/stl_bvector.h:120:3: note:   no known conversion for argument 1 from ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’ to ‘std::_Bit_reference’
/usr/include/c++/6/bits/stl_bvector.h:128:3: note: candidate: void std::swap(bool&, std::_Bit_reference)
   swap(bool& __x, _Bit_reference __y) noexcept
   ^~~~
/usr/include/c++/6/bits/stl_bvector.h:128:3: note:   no known conversion for argument 2 from ‘z8002_device::Z8000_exec*’ to ‘std::_Bit_reference’
In file included from /usr/include/c++/6/string:52:0,
                 from /usr/include/c++/6/stdexcept:39,
                 from /usr/include/c++/6/array:39,
                 from /usr/include/c++/6/tuple:39,
                 from /usr/include/c++/6/functional:55,
                 from /usr/include/c++/6/memory:79,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/basic_string.h:5287:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> void std::swap(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     swap(basic_string<_CharT, _Traits, _Alloc>& __lhs,
     ^~~~
/usr/include/c++/6/bits/basic_string.h:5287:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/tuple:39:0,
                 from /usr/include/c++/6/functional:55,
                 from /usr/include/c++/6/memory:79,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/array:275:5: note: candidate: template<class _Tp, unsigned int _Nm> void std::swap(std::array<_Tp, _Nm>&, std::array<_Tp, _Nm>&)
     swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two)
     ^~~~
/usr/include/c++/6/array:275:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::array<_Tp, _Nm>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/functional:55:0,
                 from /usr/include/c++/6/memory:79,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/tuple:1546:5: note: candidate: template<class ... _Elements> void std::swap(std::tuple<_Elements ...>&, std::tuple<_Elements ...>&)
     swap(tuple<_Elements...>& __x, tuple<_Elements...>& __y)
     ^~~~
/usr/include/c++/6/tuple:1546:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::tuple<_Elements ...>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/memory:79:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/functional:2238:5: note: candidate: template<class _Res, class ... _Args> void std::swap(std::function<_Res(_ArgTypes ...)>&, std::function<_Res(_ArgTypes ...)>&)
     swap(function<_Res(_Args...)>& __x, function<_Res(_Args...)>& __y)
     ^~~~
/usr/include/c++/6/functional:2238:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/6/memory:81:0,
                 from ../../../../../src/emu/emu.h:23:
/usr/include/c++/6/bits/unique_ptr.h:614:6: note:   mismatched types ‘std::function<_Res(_ArgTypes ...)>’ and ‘std::__tuple_element_t<0u, std::tuple<const z8002_device::Z8000_exec*, std::default_delete<const z8002_device::Z8000_exec []> > > {aka const z8002_device::Z8000_exec*}’
  swap(std::get<0>(_M_t), __p);
  ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
optional.make:15578: recipe for target 'obj/Release/src/devices/cpu/z8000/z8000.o' failed
make[2]: *** [obj/Release/src/devices/cpu/z8000/z8000.o] Error 1
Makefile:88: recipe for target 'optional' failed
make[1]: *** [optional] Error 2
makefile:1252: recipe for target 'linux' failed
make: *** [linux] Error 2

#109751 - 06/01/17 11:53 PM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Mar 2001
Posts: 15,734
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,734
USA
There's a specific GCC version beloved of Canonical that causes those errors; versions before or after it both should work.

#109755 - 06/02/17 01:25 AM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Feb 2004
Posts: 1,849
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,849
Sydney, Australia
Repeating what I said before, it's a GNU libstdc++ issue in certain versions supplied with GCC 6.2. Upgrading GCC won't fix anything if you don't also make it target an updated libstd++, and you can also get it to work without upgrading GCC if you update/patch libstdc++ headers.

#109756 - 06/02/17 01:30 AM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Aug 2015
Posts: 40
ChoccyHobNob Offline
Member
ChoccyHobNob  Offline
Member

Joined: Aug 2015
Posts: 40
Fractalus
You know how many emails I get from people who struggle to update Raspbian to gcc6? I think this is pretty much completely beyond the average Pi user.

#109757 - 06/02/17 01:39 AM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Mar 2001
Posts: 15,734
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,734
USA
Understood, but the average Pi user also wants nothing to do with any MAME made this decade.

#109758 - 06/02/17 01:41 AM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Feb 2004
Posts: 1,849
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member

Joined: Feb 2004
Posts: 1,849
Sydney, Australia
Well take it up with Canonical for shipping a blatantly broken libstdc++. There's a limit to how much we're going to work around broken toolsets. We don't support building with any version of Visual Studio besides 2015 Update 3 because variable templates don't work before that, and constexpr is broken in 2017 RTM. We actually support a far wider range of GCC/clang/libstdc++/libc++ versions than we do visual studio. We support all GCC and GNU libstdc++ 5.x and 6.x with the exception of these flawed libstdc++ 6.2 versions. We support pretty much any version of clang from 3.4 onwards, as well as any libc++ from the last couple of years. You can't blame MAME developers for certain Linux distros shipping completely flawed standard libraries.

#109759 - 06/02/17 01:53 AM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Aug 2015
Posts: 40
ChoccyHobNob Offline
Member
ChoccyHobNob  Offline
Member

Joined: Aug 2015
Posts: 40
Fractalus
I'm not blaming you guys at all!

I get a surprising number of people downloading my Pi3 build every month, I think it's the only way to run some of the mess stuff on a Pi so there are a few non-average Pi users out there.

I spend way more time every month explaining why the 2003 romset they got from archive wont run neogeo using the bios they got from a final burn set and explaining why kinst wont work at all. The average Pi user is pretty depressing.

Right off to shoehorn a newer 6.2 version of gcc into a pi that ships with 4.9.2 smirk

Thanks for the help guys

#109769 - 06/02/17 06:40 PM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Aug 2015
Posts: 40
ChoccyHobNob Offline
Member
ChoccyHobNob  Offline
Member

Joined: Aug 2015
Posts: 40
Fractalus
Upgraded to GCC 6.3 got the newest libstdc++6 and it worked great. Thanks chaps!

#109770 - 06/02/17 06:50 PM Re: 0.186 Compile fail on Pi3 [Re: ChoccyHobNob]  
Joined: Mar 2001
Posts: 15,734
R. Belmont Offline
R. Belmont  Offline

Very Senior Member

Joined: Mar 2001
Posts: 15,734
USA
Nice smile


Moderated by  R. Belmont 

Who's Online Now
2 registered members (Reznor007, ssj), 31 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,426
Posts109,198
Members4,759
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.027s Queries: 14 (0.008s) Memory: 5.0090 MB (Peak: 5.2285 MB) Zlib enabled. Server Time: 2017-10-18 16:51:08 UTC