[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