autc04 / executor

A modern fork of the classic Mac emulator
MIT License
140 stars 10 forks source link

Cannot compile on RHEL 8.6 + boost 1.66 #54

Open ElCoyote27 opened 2 years ago

ElCoyote27 commented 2 years ago

Hi, Trying to build executor from source on RHEL 8.6 + libboost 1.66, I get a C++ error:

[raistlin@daltigoth ~/rpmbuild/BUILD/executor/build]$ gmake
[  1%] Built target lmdb
[  6%] Built target resources
[  9%] Built target syngen
[ 14%] Built target syn68k
[ 15%] Built target powergenerator
[ 16%] Built target PowerCore
[ 16%] Built target CountInstructions
[ 16%] Built target testbed
[ 17%] Built target test-powerpc
[ 19%] Built target mon
[ 19%] Built target cxmon
[ 19%] Built target mksspairtable
[ 20%] Built target mkseedtables
[ 21%] Built target mkultable
[ 21%] Built target map_to_c
[ 89%] Built target romlib
[ 89%] Built target front-end-headless
[ 90%] Built target front-end-x
Consolidate compiler generated dependencies of target executor-x
[ 90%] Building CXX object src/CMakeFiles/executor-x.dir/main.cpp.o
In file included from /usr/include/boost/config.hpp:61,
                 from /usr/include/boost/filesystem/config.hpp:28,
                 from /usr/include/boost/filesystem.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp: In instantiation of ‘const bool boost::detail::has_right_shift_impl::operator_exists<std::basic_istream<wchar_t>, MemorySize>::value’:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:179:4:   required from ‘const bool boost::detail::has_right_shift_impl::trait_impl1<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care, false>::value’
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:208:4:   required from ‘const bool boost::detail::has_right_shift_impl::trait_impl<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>::value’
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:216:8:   required from ‘struct boost::has_right_shift<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:243:13:   required from ‘struct boost::detail::deduce_target_char_impl<boost::detail::deduce_character_type_later<MemorySize> >’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:270:89:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:468:15:   required from ‘struct boost::detail::lexical_converter_impl<MemorySize, std::__cxx11::basic_string<char> >’
/usr/include/boost/lexical_cast/try_lexical_convert.hpp:196:44:   required from ‘bool boost::conversion::detail::try_lexical_convert(const Source&, Target&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char> ’
/usr/include/boost/lexical_cast.hpp:41:60:   required from ‘Target boost::lexical_cast(const Source&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char>]’
/usr/include/boost/program_options/detail/value_semantic.hpp:92:36:   required from ‘void boost::program_options::validate(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&, T*, long int) [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:184:21:   required from ‘void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&) const [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:174:5:   required from here
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:158:70: error: ambiguous overload for ‘operator>>’ (operand types are ‘std::basic_istream<wchar_t>’ and ‘MemorySize’)
    BOOST_STATIC_CONSTANT(bool, value = (sizeof(s_check(((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
                                                                     ^
In file included from /usr/include/c++/8/iterator:65,
                 from /usr/include/boost/filesystem/path_traits.hpp:28,
                 from /usr/include/boost/filesystem/path.hpp:25,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/c++/8/istream:120:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:124:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<wchar_t>]’
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:131:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/8/istream:259:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<wchar_t>]’
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
In file included from /usr/include/boost/type_traits/has_right_shift.hpp:43,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:39,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:42,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /usr/include/boost/program_options/value_semantic.hpp:14,
                 from /usr/include/boost/program_options/options_description.hpp:13,
                 from /usr/include/boost/program_options.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./commandline/program_options_extended.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:58:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:70:13: note: candidate: ‘boost::detail::has_right_shift_impl::no_operator boost::detail::has_right_shift_impl::operator>>(const boost::detail::has_right_shift_impl::any&, const boost::detail::has_right_shift_impl::any&)’
 no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
             ^~~~~~~~
In file included from /usr/include/boost/config.hpp:61,
                 from /usr/include/boost/filesystem/config.hpp:28,
                 from /usr/include/boost/filesystem.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp: In instantiation of ‘const bool boost::detail::has_right_shift_impl::operator_returns_void<std::basic_istream<wchar_t>, MemorySize>::value’:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:179:4:   required from ‘const bool boost::detail::has_right_shift_impl::trait_impl1<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care, false>::value’
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:208:4:   required from ‘const bool boost::detail::has_right_shift_impl::trait_impl<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>::value’
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:216:8:   required from ‘struct boost::has_right_shift<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:243:13:   required from ‘struct boost::detail::deduce_target_char_impl<boost::detail::deduce_character_type_later<MemorySize> >’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:270:89:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:468:15:   required from ‘struct boost::detail::lexical_converter_impl<MemorySize, std::__cxx11::basic_string<char> >’
/usr/include/boost/lexical_cast/try_lexical_convert.hpp:196:44:   required from ‘bool boost::conversion::detail::try_lexical_convert(const Source&, Target&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char> ’
/usr/include/boost/lexical_cast.hpp:41:60:   required from ‘Target boost::lexical_cast(const Source&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char>]’
/usr/include/boost/program_options/detail/value_semantic.hpp:92:36:   required from ‘void boost::program_options::validate(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&, T*, long int) [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:184:21:   required from ‘void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&) const [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:174:5:   required from here
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:95:114: error: ambiguous overload for ‘operator>>’ (operand types are ‘std::basic_istream<wchar_t>’ and ‘MemorySize’)
    BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
                                                                                                                  ^
In file included from /usr/include/c++/8/iterator:65,
                 from /usr/include/boost/filesystem/path_traits.hpp:28,
                 from /usr/include/boost/filesystem/path.hpp:25,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/c++/8/istream:120:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:124:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<wchar_t>]’
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:131:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/8/istream:259:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<wchar_t>]’
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
In file included from /usr/include/boost/type_traits/has_right_shift.hpp:43,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:39,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:42,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /usr/include/boost/program_options/value_semantic.hpp:14,
                 from /usr/include/boost/program_options/options_description.hpp:13,
                 from /usr/include/boost/program_options.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./commandline/program_options_extended.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:58:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:70:13: note: candidate: ‘boost::detail::has_right_shift_impl::no_operator boost::detail::has_right_shift_impl::operator>>(const boost::detail::has_right_shift_impl::any&, const boost::detail::has_right_shift_impl::any&)’
 no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
             ^~~~~~~~
In file included from /usr/include/boost/iterator/iterator_categories.hpp:21,
                 from /usr/include/boost/iterator/iterator_facade.hpp:13,
                 from /usr/include/boost/filesystem/path.hpp:28,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp: In instantiation of ‘struct boost::detail::deduce_target_char_impl<boost::detail::deduce_character_type_later<MemorySize> >’:
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:270:89:   required from ‘struct boost::detail::deduce_target_char<MemorySize>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:407:92:   required from ‘struct boost::detail::lexical_cast_stream_traits<std::__cxx11::basic_string<char>, MemorySize>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:468:15:   required from ‘struct boost::detail::lexical_converter_impl<MemorySize, std::__cxx11::basic_string<char> >’
/usr/include/boost/lexical_cast/try_lexical_convert.hpp:196:44:   required from ‘bool boost::conversion::detail::try_lexical_convert(const Source&, Target&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char> ’
/usr/include/boost/lexical_cast.hpp:41:60:   required from ‘Target boost::lexical_cast(const Source&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char>]’
/usr/include/boost/program_options/detail/value_semantic.hpp:92:36:   required from ‘void boost::program_options::validate(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&, T*, long int) [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:184:21:   required from ‘void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&) const [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:174:5:   required from here
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:243:13: error: ‘value’ is not a member of ‘boost::has_right_shift<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>’
             BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift<std::basic_istream<wchar_t>, T >::value),
             ^~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [src/CMakeFiles/executor-x.dir/build.make:76: src/CMakeFiles/executor-x.dir/main.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:762: src/CMakeFiles/executor-x.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2
[raistlin@daltigoth ~/rpmbuild/BUILD/executor/build]$ gmake
  06/26/2022 21:43:13 .: 7.81 6.38 5.27 :.  0 raistlin@daltigoth:~  1 coyote@daltigoth:~  2 root@daltigoth:~  3 raistlin@daltigoth:~  4 raistlin@daltigoth:~  5 root@daltigoth:~/Bui  6 root@daltigoth:~  7 raistlin@daltigoth:~  
raits>::__ios_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<wchar_t>]’ 
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:131:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/8/istream:259:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<wchar_t>]’
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
In file included from /usr/include/boost/type_traits/has_right_shift.hpp:43,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:39,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:42,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /usr/include/boost/program_options/value_semantic.hpp:14,
                 from /usr/include/boost/program_options/options_description.hpp:13,
                 from /usr/include/boost/program_options.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./commandline/program_options_extended.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:58:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:70:13: note: candidate: ‘boost::detail::has_right_shift_impl::no_operator boost::detail::has_right_shift_impl::operator>>(const boost::detail::has_right_shift_impl::any&, const boost::detail::has_right_shift_impl::any&)’
 no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
             ^~~~~~~~
In file included from /usr/include/boost/config.hpp:61,
                 from /usr/include/boost/filesystem/config.hpp:28,
                 from /usr/include/boost/filesystem.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp: In instantiation of ‘const bool boost::detail::has_right_shift_impl::operator_returns_void<std::basic_istream<wchar_t>, MemorySize>::value’:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:179:4:   required from ‘const bool boost::detail::has_right_shift_impl::trait_impl1<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care, false>::value’
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:208:4:   required from ‘const bool boost::detail::has_right_shift_impl::trait_impl<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>::value’
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:216:8:   required from ‘struct boost::has_right_shift<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:243:13:   required from ‘struct boost::detail::deduce_target_char_impl<boost::detail::deduce_character_type_later<MemorySize> >’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:270:89:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:468:15:   required from ‘struct boost::detail::lexical_converter_impl<MemorySize, std::__cxx11::basic_string<char> >’
/usr/include/boost/lexical_cast/try_lexical_convert.hpp:196:44:   required from ‘bool boost::conversion::detail::try_lexical_convert(const Source&, Target&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char> ’
/usr/include/boost/lexical_cast.hpp:41:60:   required from ‘Target boost::lexical_cast(const Source&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char>]’
/usr/include/boost/program_options/detail/value_semantic.hpp:92:36:   required from ‘void boost::program_options::validate(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&, T*, long int) [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:184:21:   required from ‘void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&) const [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:174:5:   required from here
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:95:114: error: ambiguous overload for ‘operator>>’ (operand types are ‘std::basic_istream<wchar_t>’ and ‘MemorySize’)
    BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
                                                                                                                  ^
In file included from /usr/include/c++/8/iterator:65,
                 from /usr/include/boost/filesystem/path_traits.hpp:28,
                 from /usr/include/boost/filesystem/path.hpp:25,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/c++/8/istream:120:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:124:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<wchar_t>]’ 
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/8/istream:131:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<wchar_t>]’
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/8/istream:259:7: note: candidate: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<wchar_t>]’
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
In file included from /usr/include/boost/type_traits/has_right_shift.hpp:43,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:39,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:42,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /usr/include/boost/program_options/value_semantic.hpp:14,
                 from /usr/include/boost/program_options/options_description.hpp:13,
                 from /usr/include/boost/program_options.hpp:15,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./commandline/program_options_extended.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:58:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:70:13: note: candidate: ‘boost::detail::has_right_shift_impl::no_operator boost::detail::has_right_shift_impl::operator>>(const boost::detail::has_right_shift_impl::any&, const boost::detail::has_right_shift_impl::any&)’
 no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
             ^~~~~~~~
In file included from /usr/include/boost/iterator/iterator_categories.hpp:21,
                 from /usr/include/boost/iterator/iterator_facade.hpp:13,
                 from /usr/include/boost/filesystem/path.hpp:28,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/include/rsys/filesystem.h:3,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/./file/file.h:16,
                 from /export/home/raistlin/rpmbuild/BUILD/executor/src/main.cpp:37:
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp: In instantiation of ‘struct boost::detail::deduce_target_char_impl<boost::detail::deduce_character_type_later<MemorySize> >’:
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:270:89:   required from ‘struct boost::detail::deduce_target_char<MemorySize>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:407:92:   required from ‘struct boost::detail::lexical_cast_stream_traits<std::__cxx11::basic_string<char>, MemorySize>’
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:468:15:   required from ‘struct boost::detail::lexical_converter_impl<MemorySize, std::__cxx11::basic_string<char> >’
/usr/include/boost/lexical_cast/try_lexical_convert.hpp:196:44:   required from ‘bool boost::conversion::detail::try_lexical_convert(const Source&, Target&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char> ’
/usr/include/boost/lexical_cast.hpp:41:60:   required from ‘Target boost::lexical_cast(const Source&) [with Target = MemorySize; Source = std::__cxx11::basic_string<char>]’
/usr/include/boost/program_options/detail/value_semantic.hpp:92:36:   required from ‘void boost::program_options::validate(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&, T*, long int) [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:184:21:   required from ‘void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::__cxx11::basic_string<charT> >&) const [with T = MemorySize; charT = char]’
/usr/include/boost/program_options/detail/value_semantic.hpp:174:5:   required from here
/usr/include/boost/lexical_cast/detail/converter_lexical.hpp:243:13: error: ‘value’ is not a member of ‘boost::has_right_shift<std::basic_istream<wchar_t>, MemorySize, boost::detail::has_right_shift_impl::dont_care>’
             BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift<std::basic_istream<wchar_t>, T >::value),
             ^~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [src/CMakeFiles/executor-x.dir/build.make:76: src/CMakeFiles/executor-x.dir/main.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:762: src/CMakeFiles/executor-x.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2
ElCoyote27 commented 2 years ago

Here is the list of boost rpms I have installed:

$ rpm -qa boost\*
boost-thread-1.66.0-10.el8.x86_64
boost-type_erasure-1.66.0-10.el8.x86_64
boost-math-1.66.0-10.el8.i686
boost-filesystem-1.66.0-10.el8.x86_64
boost-serialization-1.66.0-10.el8.i686
boost-math-1.66.0-10.el8.x86_64
boost-coroutine-1.66.0-10.el8.i686
boost-wave-1.66.0-10.el8.i686
boost-iostreams-1.66.0-10.el8.i686
boost-system-1.66.0-10.el8.x86_64
boost-devel-1.66.0-10.el8.x86_64
boost-timer-1.66.0-10.el8.i686
boost-date-time-1.66.0-10.el8.i686
boost-container-1.66.0-10.el8.i686
boost-serialization-1.66.0-10.el8.x86_64
boost-stacktrace-1.66.0-10.el8.x86_64
boost-chrono-1.66.0-10.el8.x86_64
boost-graph-1.66.0-10.el8.x86_64
boost-test-1.66.0-10.el8.i686
boost-test-1.66.0-10.el8.x86_64
boost-iostreams-1.66.0-10.el8.x86_64
boost-graph-1.66.0-10.el8.i686
boost-filesystem-1.66.0-10.el8.i686
boost-locale-1.66.0-10.el8.i686
boost-atomic-1.66.0-10.el8.x86_64
boost-date-time-1.66.0-10.el8.x86_64
boost-regex-1.66.0-10.el8.i686
boost-timer-1.66.0-10.el8.x86_64
boost-container-1.66.0-10.el8.x86_64
boost-coroutine-1.66.0-10.el8.x86_64
boost-context-1.66.0-10.el8.i686
boost-log-1.66.0-10.el8.x86_64
boost-system-1.66.0-10.el8.i686
boost-regex-1.66.0-10.el8.x86_64
boost-log-1.66.0-10.el8.i686
boost-chrono-1.66.0-10.el8.i686
boost-devel-1.66.0-10.el8.i686
boost-1.66.0-10.el8.x86_64
boost-program-options-1.66.0-10.el8.i686
boost-stacktrace-1.66.0-10.el8.i686
boost-random-1.66.0-10.el8.x86_64
boost-1.66.0-10.el8.i686
boost-locale-1.66.0-10.el8.x86_64
boost-signals-1.66.0-10.el8.x86_64
boost-fiber-1.66.0-10.el8.x86_64
boost-context-1.66.0-10.el8.x86_64
boost-thread-1.66.0-10.el8.i686
boost-random-1.66.0-10.el8.i686
boost-type_erasure-1.66.0-10.el8.i686
boost-atomic-1.66.0-10.el8.i686
boost-wave-1.66.0-10.el8.x86_64
boost-signals-1.66.0-10.el8.i686
boost-program-options-1.66.0-10.el8.x86_64
boost-fiber-1.66.0-10.el8.i686
ElCoyote27 commented 2 years ago

I tried editing

And adding a few defines to CXX_DEFINES but it did not help resolve the issue:

-DBOOST_LCAST_NO_WCHAR_T -DBOOST_NO_WCHAR_T -DBOOST_STATIC_ASSERT_HPP 
ElCoyote27 commented 2 years ago

BTW, the binary rpms which were in the 'ready' subdirectory do work fine on RHEL 8.7 (had to rebuild an rpm of libdb-4.7 but aside from that it was easy):

$ rpm -qa executor\* compat-db\*
executor-aux-1-1.i686
compat-db47-4.7.25-28.el8.i386
compat-db-headers-4.7.25-28.el8.noarch
executor-1-1.i686
ElCoyote27 commented 2 years ago

Apologies, this is where I got the rpms:

origin  https://github.com/victor3dptz/executor-packaging (fetch)
origin  https://github.com/victor3dptz/executor-packaging (push)
$ find . -name \*rpm
./SPECS/executor-2-1.src.rpm
./ready/centos-6.8/executor-aux-1-1.i686.rpm
./ready/centos-6.8/executor-1-1.i686.rpm