https://github.com/boostorg/mpi/commit/945de1137b88de6fc0e4dadbc7dca6195087a06d Fixed up reference to ::boost::mpi::optional to ::boost::optional so that it matches the 1.92.0 release. From: "Ivan A. Melnikov" Date: Fri, 14 Aug 2026 14:18:02 +0400 Subject: [PATCH] py_request: Move the operator== definition into the namespace ...to match the declaration in the header. When built with GCC 15.3.1 on Linux, the mpi python module (mpi.so) is left with the following symbol undefined: _ZN5boost3mpi6pythoneqERKNS1_18request_with_valueES4_ which is unmangled to: boost::mpi::python::operator==(boost::mpi::python::request_with_value const&, boost::mpi::python::request_with_value const&) Indeed, request_with_value.hpp declares the operator as a free function in boost::mpi::python namespace, while py_request.cpp defines the operator in the top-level namespace. Move the definition into the namespace to make sure that declaration and definition match. Fixes: 7c6b9c1be2eba1bf65271adee11683d0e9976ff2 Refs: #179 Signed-off-by: Ivan A. Melnikov --- a/libs/mpi/src/python/py_request.cpp +++ b/libs/mpi/src/python/py_request.cpp @@ -64,13 +64,13 @@ const object python::request_with_value::wrap_test() return object(); } -bool operator==(python::request_with_value const&, python::request_with_value const&) { +namespace boost { namespace mpi { namespace python { + +bool operator==(request_with_value const&, request_with_value const&) { PyErr_SetString(PyExc_NotImplementedError, "mpi requests are not comparable"); throw error_already_set(); } -namespace boost { namespace mpi { namespace python { - const object request_test(request &req) { ::boost::optional stat = req.test();