Skip to content

Boost 1.92.0 build error #1155

Description

@smuzaffar

I am trying to build boost 1.92.0 from sources (using the same build recipe I have for boost 1.91.0 with works) but it fails with build error . I am building it for AlmaLinux 9, using GCC 13.4.0 and Python 3.12.

path/boost/1.92.0-dff58b5316b27d059d4b6dd64418175c/boost_1_92_0/libs/mpi/src/python/py_nonblocking.cpp:224:11:   required from here
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/predefined_ops.h:270:24: error: no match for 'operator==' (operand types are 'boost::mpi::python::request_with_value' and 'const boost::mpi::python::request_with_value')
  270 |         { return *__it == _M_value; }

Any idea why 1.92 failed which 1.91.0 had no issues on AlmaLinux 8,9,10 and GCc 13 to 16.

[a]

    "g++"   -fvisibility-inlines-hidden -fPIC -m64 -pthread -O3 -finline-functions -Wno-inline -Wall -fvisibility=hidden -Winvalid-pch \
-DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_DYN_LINK=1 -DBOOST_ATOMIC_NO_LIB=1 -DBOOST_BUILD_PCH_ENABLED \
-DBOOST_CHRONO_DYN_LINK=1 -DBOOST_CHRONO_NO_LIB=1 -DBOOST_CONTAINER_DYN_LINK=1 -DBOOST_CONTAINER_NO_LIB=1 \
-DBOOST_DATE_TIME_DYN_LINK=1 -DBOOST_DATE_TIME_NO_LINK=1 -DBOOST_EXCEPTION_NO_LIB=1 -DBOOST_FILESYSTEM_DISABLE_STATX \
-DBOOST_GRAPH_NO_LIB=1 -DBOOST_MATH_TR1_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_NO_LIB=1 \
-DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_MPI_PYTHON_NO_LIB=1 -DBOOST_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_NO_LIB \
-DBOOST_RANDOM_DYN_LINK=1 -DBOOST_RANDOM_NO_LIB=1 -DBOOST_SERIALIZATION_NO_LIB=1 -DBOOST_THREAD_BUILD_DLL=1 \
-DBOOST_THREAD_NO_LIB=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -DDATE_TIME_INLINE -DNDEBUG   \
<long-list-of-include-dirs> -I"libs/config/include"  \
-c -o "build-boost/boost/bin.v2/libs/mpi/build/gcc-13/release/x86_64/python-3.12/threading-multi/visibility-hidden/python/py_nonblocking.o" \
"path/boost/1.92.0-dff58b5316b27d059d4b6dd64418175c/boost_1_92_0/libs/mpi/src/python/py_nonblocking.cpp"

In file included from ./boost/python/detail/is_xxx.hpp:8,
                 from ./boost/python/detail/is_auto_ptr.hpp:9,
                 from ./boost/python/detail/copy_ctor_mutates_rhs.hpp:8,
                 from ./boost/python/detail/value_arg.hpp:7,
                 from ./boost/python/object/forward.hpp:10,
                 from ./boost/python/object/pointer_holder.hpp:16,
                 from ./boost/python/to_python_indirect.hpp:10,
                 from ./boost/python/converter/arg_to_python.hpp:10,
                 from ./boost/python/call.hpp:15,
                 from ./boost/python/object_core.hpp:14,
                 from ./boost/python/args.hpp:22,
                 from ./boost/python.hpp:11,
                 from path/boost/1.92.0-dff58b5316b27d059d4b6dd64418175c/boost_1_92_0/libs/mpi/src/python/py_nonblocking.cpp:21:
./boost/python/detail/is_auto_ptr.hpp:19:40: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   19 | BOOST_PYTHON_IS_XXX_DEF(auto_ptr, std::auto_ptr, 1)
      |                                        ^~~~~~~~
./boost/detail/is_xxx.hpp:20:4: note: in definition of macro 'BOOST_DETAIL_IS_XXX_DEF'
   20 |    qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, T) >        \
      |    ^~~~~~~~~~~~~~
./boost/python/detail/is_auto_ptr.hpp:19:1: note: in expansion of macro 'BOOST_PYTHON_IS_XXX_DEF'
   19 | BOOST_PYTHON_IS_XXX_DEF(auto_ptr, std::auto_ptr, 1)
      | ^~~~~~~~~~~~~~~~~~~~~~~
In file included from path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/memory:78,
                 from ./boost/function/function_base.hpp:23,
                 from ./boost/function/function_template.hpp:14,
                 from ./boost/function/function0.hpp:10,
                 from ./boost/python/errors.hpp:13,
                 from ./boost/python/handle.hpp:11,
                 from ./boost/python/args_fwd.hpp:10,
                 from ./boost/python/args.hpp:10:
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/unique_ptr.h:65:28: note: declared here
   65 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_algobase.h:71,
                 from path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/vector:62,
                 from path/boost/1.92.0-dff58b5316b27d059d4b6dd64418175c/boost_1_92_0/libs/mpi/src/python/py_nonblocking.cpp:17:
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/predefined_ops.h: In instantiation of 'bool __gnu_cxx::__ops::_Iter_equals_val<_Value>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<boost::mpi::python::request_with_value*, std::vector<boost::mpi::python::request_with_value> >; _Value = const boost::mpi::python::request_with_value]':
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_algobase.h:2128:12:   required from 'typename std::iterator_traits< <template-parameter-1-1> >::difference_type std::__count_if(_InputIterator, _InputIterator, _Predicate) [with _InputIterator = __gnu_cxx::__normal_iterator<boost::mpi::python::request_with_value*, vector<boost::mpi::python::request_with_value> >; _Predicate = __gnu_cxx::__ops::_Iter_equals_val<const boost::mpi::python::request_with_value>; typename iterator_traits< <template-parameter-1-1> >::difference_type = long int]'
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_algo.h:4080:29:   required from 'typename std::iterator_traits< <template-parameter-1-1> >::difference_type std::count(_IIter, _IIter, const _Tp&) [with _IIter = __gnu_cxx::__normal_iterator<boost::mpi::python::request_with_value*, vector<boost::mpi::python::request_with_value> >; _Tp = boost::mpi::python::request_with_value; typename iterator_traits< <template-parameter-1-1> >::difference_type = long int]'
./boost/python/suite/indexing/vector_indexing_suite.hpp:220:34:   required from 'static size_t boost::python::vector_indexing_suite<Container, NoProxy, DerivedPolicies>::base_count(Container&, boost::python::api::object) [with Container = std::vector<boost::mpi::python::request_with_value>; bool NoProxy = false; DerivedPolicies = {anonymous}::request_list_indexing_suite; size_t = long unsigned int]'
./boost/python/suite/indexing/vector_indexing_suite.hpp:66:31:   required from 'static void boost::python::vector_indexing_suite<Container, NoProxy, DerivedPolicies>::extension_def(Class&) [with Class = boost::python::class_<std::vector<boost::mpi::python::request_with_value> >; Container = std::vector<boost::mpi::python::request_with_value>; bool NoProxy = false; DerivedPolicies = {anonymous}::request_list_indexing_suite]'
./boost/python/suite/indexing/indexing_suite.hpp:190:43:   required from 'void boost::python::indexing_suite<Container, DerivedPolicies, NoProxy, NoSlice, Data, Index, Key>::visit(Class&) const [with Class = boost::python::class_<std::vector<boost::mpi::python::request_with_value> >; Container = std::vector<boost::mpi::python::request_with_value>; DerivedPolicies = {anonymous}::request_list_indexing_suite; bool NoProxy = false; bool NoSlice = false; Data = boost::mpi::python::request_with_value; Index = long unsigned int; Key = boost::mpi::python::request_with_value]'
./boost/python/def_visitor.hpp:31:34:   required from 'static void boost::python::def_visitor_access::visit(const V&, classT&) [with V = boost::python::def_visitor<boost::python::indexing_suite<std::vector<boost::mpi::python::request_with_value>, {anonymous}::request_list_indexing_suite, false, false, boost::mpi::python::request_with_value, long unsigned int, boost::mpi::python::request_with_value> >; classT = boost::python::class_<std::vector<boost::mpi::python::request_with_value> >]'
./boost/python/def_visitor.hpp:67:34:   required from 'void boost::python::def_visitor<DerivedVisitor>::visit(classT&) const [with classT = boost::python::class_<std::vector<boost::mpi::python::request_with_value> >; DerivedVisitor = boost::python::indexing_suite<std::vector<boost::mpi::python::request_with_value>, {anonymous}::request_list_indexing_suite, false, false, boost::mpi::python::request_with_value, long unsigned int, boost::mpi::python::request_with_value>]'
./boost/python/class.hpp:221:22:   required from 'boost::python::class_<T, X1, X2, X3>::self& boost::python::class_<T, X1, X2, X3>::def(const boost::python::def_visitor<Derived>&) [with Derived = boost::python::indexing_suite<std::vector<boost::mpi::python::request_with_value>, {anonymous}::request_list_indexing_suite, false, false, boost::mpi::python::request_with_value, long unsigned int, boost::mpi::python::request_with_value>; W = std::vector<boost::mpi::python::request_with_value>; X1 = boost::python::detail::not_specified; X2 = boost::python::detail::not_specified; X3 = boost::python::detail::not_specified; self = boost::python::class_<std::vector<boost::mpi::python::request_with_value> >]'
path/boost/1.92.0-dff58b5316b27d059d4b6dd64418175c/boost_1_92_0/libs/mpi/src/python/py_nonblocking.cpp:224:11:   required from here
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/predefined_ops.h:270:24: error: no match for 'operator==' (operand types are 'boost::mpi::python::request_with_value' and 'const boost::mpi::python::request_with_value')
  270 |         { return *__it == _M_value; }
      |                  ~~~~~~^~~~~~~~~~~
In file included from path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_algobase.h:67:
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_iterator.h:1217:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator==(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)'
 1217 |     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_iterator.h:1217:5: note:   template argument deduction/substitution failed:
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/predefined_ops.h:270:24: note:   'boost::mpi::python::request_with_value' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>'
  270 |         { return *__it == _M_value; }
      |                  ~~~~~~^~~~~~~~~~~
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_iterator.h:1225:5: note: candidate: 'template<class _Iterator, class _Container> bool __gnu_cxx::operator==(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)'
 1225 |     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/stl_iterator.h:1225:5: note:   template argument deduction/substitution failed:
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/predefined_ops.h:270:24: note:   'boost::mpi::python::request_with_value' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>'
  270 |         { return *__it == _M_value; }
      |                  ~~~~~~^~~~~~~~~~~
In file included from ./boost/mpi.hpp:22,
                 from path/boost/1.92.0-dff58b5316b27d059d4b6dd64418175c/boost_1_92_0/libs/mpi/src/python/py_nonblocking.cpp:24:
./boost/mpi/allocator.hpp:187:13: note: candidate: 'template<class T1, class T2> bool boost::mpi::operator==(const allocator<U>&, const allocator<T2>&)'
  187 | inline bool operator==(const allocator<T1>&, const allocator<T2>&) throw()
      |             ^~~~~~~~
./boost/mpi/allocator.hpp:187:13: note:   template argument deduction/substitution failed:
path/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/include/c++/13.4.0/bits/predefined_ops.h:270:24: note:   'boost::mpi::python::request_with_value' is not derived from 'const boost::mpi::allocator<U>'
  270 |         { return *__it == _M_value; }
      |                  ~~~~~~^~~~~~~~~~~
In file included from ./boost/mpi/collectives.hpp:21,
                 from ./boost/mpi.hpp:23:
./boost/mpi/communicator.hpp:1130:21: note: candidate: 'bool boost::mpi::operator==(const communicator&, const communicator&)'
 1130 | BOOST_MPI_DECL bool operator==(const communicator& comm1, const communicator& comm2);
      |                     ^~~~~~~~
./boost/mpi/communicator.hpp:1130:52: note:   no known conversion for argument 1 from 'boost::mpi::python::request_with_value' to 'const boost::mpi::communicator&'
 1130 | BOOST_MPI_DECL bool operator==(const communicator& comm1, const communicator& comm2);
      |                                ~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from ./boost/mpi.hpp:28:
./boost/mpi/group.hpp:215:21: note: candidate: 'bool boost::mpi::operator==(const group&, const group&)'
  215 | BOOST_MPI_DECL bool operator==(const group& g1, const group& g2);
      |                     ^~~~~~~~
./boost/mpi/group.hpp:215:45: note:   no known conversion for argument 1 from 'boost::mpi::python::request_with_value' to 'const boost::mpi::group&'
  215 | BOOST_MPI_DECL bool operator==(const group& g1, const group& g2);
      |                                ~~~~~~~~~~~~~^~
...failed gcc.compile.c++ build-boost/boost/bin.v2/libs/mpi/build/gcc-13/release/x86_64/python-3.12/threading-multi/visibility-hidden/python/py_nonblocking.o...

...updated 544 targets...

...failed updating 1 target...
   gcc.compile.c++ build-boost/boost/bin.v2/libs/mpi/build/gcc-13/release/x86_64/python-3.12/threading-multi/visibility-hidden/python/py_nonblocking.o

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions