Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 May 2023 13:12:30 +0000
From:      bugzilla-noreply@freebsd.org
To:        office@FreeBSD.org
Subject:   [Bug 271488] devel/boost-libs: apply upstream patch for C++17 support
Message-ID:  <bug-271488-25061@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D271488

            Bug ID: 271488
           Summary: devel/boost-libs: apply upstream patch for C++17
                    support
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: office@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: office@FreeBSD.org
             Flags: maintainer-feedback?(office@FreeBSD.org)

Since clang 16 (and gcc 11) the default C++ standard is now gnu++17.
Several ports that use boost/functional.hpp now complain with (for
example print/libmspub01):

  In file included from MSPUBCollector.cpp:17:
  In file included from /usr/local/include/boost/multi_array.hpp:34:
  In file included from
/usr/local/include/boost/multi_array/multi_array_ref.hpp:32:
  /usr/local/include/boost/functional.hpp:45:24: error: no member named
'unary_function' in namespace 'std'; did you mean '__unary_function'?
              using std::unary_function;
                    ~~~~~^~~~~~~~~~~~~~
                         __unary_function
  /usr/include/c++/v1/__functional/unary_function.h:46:1: note:
'__unary_function' declared here
  using __unary_function =3D __unary_function_keep_layout_base<_Arg, _Resul=
t>;
  ^
  In file included from MSPUBCollector.cpp:17:
  In file included from /usr/local/include/boost/multi_array.hpp:34:
  In file included from
/usr/local/include/boost/multi_array/multi_array_ref.hpp:32:
  /usr/local/include/boost/functional.hpp:46:24: error: no member named
'binary_function' in namespace 'std'; did you mean '__binary_function'?
              using std::binary_function;
                    ~~~~~^~~~~~~~~~~~~~~
                         __binary_function
  /usr/include/c++/v1/__functional/binary_function.h:49:1: note:
'__binary_function' declared here
  using __binary_function =3D __binary_function_keep_layout_base<_Arg1, _Ar=
g2,
_Result>;
  ^

This is because std::unary_function and std::binary_function were
removed from C++17. Upstream boost/functional fixed this in
https://github.com/boostorg/functional/commit/6a573e4, so apply that
patch until boost 1.83.0 is released with it.

>From looking at the logs of
https://pkg-status.freebsd.org/gohan05/build.html?mastername=3Dmainamd64PR2=
71047-default&build=3D2023-05-14_19h35m09s,
at least the following boost-using ports are affected:

* print/libmspub01
* finance/quantlib
* science/rmf
* games/wesnoth

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-271488-25061>