[MacPorts] #69719: draco @1.5.7: error: no type named 'invoke_result' in namespace 'std'

MacPorts noreply at macports.org
Fri Apr 12 19:15:38 UTC 2024


#69719: draco @1.5.7: error: no type named 'invoke_result' in namespace 'std'
----------------------+------------------------
  Reporter:  Nicob73  |      Owner:  nilason
      Type:  defect   |     Status:  assigned
  Priority:  Normal   |  Milestone:
 Component:  ports    |    Version:  2.9.3
Resolution:           |   Keywords:  highsierra
      Port:  draco    |
----------------------+------------------------

Comment (by ryandesign):

 Replying to [comment:2 Nicob73]:
 > How can I specify C++14 for building this port ?

 As I said, the port already specifies that it requires a C++14 compiler:

 https://github.com/macports/macports-
 ports/blob/2eb1d1e9a0f53793a930849b63e8ef571a6f6f01/archivers/draco/Portfile#L27

 However, the build is failing with an error that suggests it actually
 needs a C++17 compiler:

 > {{{
 > /opt/local/include/eigen3/Eigen/src/Core/util/Meta.h:504:25: error: no
 type named 'invoke_result' in namespace 'std'
 > }}}

 We see the same error on our highsierra buildbot worker. This error coming
 from an eigen3 header. It may be the case that everything that includes
 this eigen3 header now needs C++17 or newer. This is unexpected since
 eigen3 itself only declares that it requires C++11 or newer, and appears
 to build fine with that:

 https://github.com/macports/macports-
 ports/blob/2eb1d1e9a0f53793a930849b63e8ef571a6f6f01/math/eigen3/Portfile#L75

 The draco build is already using the flag `-std=gnu++1z`; `1z` is what the
 `17` standard was known as before it was known in what year it would be
 released. The compiler you were originally using (not sure which one since
 you didn't attach the main.log but clearly one provided by Xcode or its
 command line tools so based on XcodeVersionInfo the newest it could be is
 `Apple LLVM version 10.0.0 (clang-1000.11.45.5)`) evidently claims to
 support some portion of C++17, but clearly not enough of it to satisfy
 draco. MacPorts believes (see CompilerSelection#LanguageStandards) that
 `Apple LLVM version 10.0.0 (clang-1000.11.45.5)` (is the oldest version
 that) supports C++17, so if that's not enough for draco, the port may need
 to do additional compiler blacklisting.


 Replying to [comment:3 Nicob73]:
 > I progress a lot by using the following command : `sudo port install
 draco configure.compiler=macports-clang-14`
 >
 > But the port still failed with the following statements :
 >
 > {{{
 > :info:build ld: unknown option: --start-group
 > }}}
 >
 > Any ideas to solve this issue ?

 It may not be productive to spend time diagnosing problems caused by
 selecting a compiler that MacPorts would not select. Let's let Nicklas fix
 the port so that it correctly indicates the language standard and what
 compilers it doesn't work with. Then, if the compiler MacPorts selects
 next still can't build it, we can investigate further.

-- 
Ticket URL: <https://trac.macports.org/ticket/69719#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list