Opened 10 months ago
Closed 10 months ago
#72438 closed defect (fixed)
octave-geometry fails to build: martinez.h: error: expected template-name before '<' token
| Reported by: | barracuda156 | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.10.6 |
| Keywords: | Cc: | Schamschula (Marius Schamschula) | |
| Port: | octave-geometry |
Description
Recent update does not work correctly:
/opt/local/bin/g++-mp-14 -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -g -Wall -o clipper.mex /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/.tmp/oct-H78Kt3.o /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/.tmp/oct-N5qrF7.o /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/.tmp/oct-qm7IIz.o -bundle -undefined dynamic_lookup -bind_at_load -L/opt/local/lib/octave/10.x.x -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -L/opt/local/lib/octave/10.1.0 -loctmex -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -Wl,-rpath,/opt/local/lib/libgcc -arch ppc
/usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose -c connector.cpp -o connector.o
/opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc connector.cpp -o connector.o
In file included from connector.h:13,
from connector.cpp:9:
martinez.h:40:50: error: expected template-name before '<' token
40 | struct SegmentComp : public std::function<bool(SweepEvent*, SweepEvent*)> { // for sorting edges in the sweep line
| ^
martinez.h:40:50: error: expected '{' before '<' token
martinez.h:40:50: error: expected unqualified-id before '<' token
In file included from /opt/local/include/gcc14/c++/set:62,
from martinez.h:19:
/opt/local/include/gcc14/c++/bits/stl_tree.h: In instantiation of 'class std::_Rb_tree<Martinez::SweepEvent*, Martinez::SweepEvent*, std::_Identity<Martinez::SweepEvent*>, Martinez::SegmentComp, std::allocator<Martinez::SweepEvent*> >':
/opt/local/include/gcc14/c++/bits/stl_set.h:135:17: required from 'class std::set<Martinez::SweepEvent*, Martinez::SegmentComp>'
135 | _Rep_type _M_t; // Red-black tree representing set.
| ^~~~
martinez.h:53:32: required from here
53 | set<SweepEvent*, SegmentComp>::iterator poss; // Only used in "left" events. Position of the event (line segment) in S
| ^~
/opt/local/include/gcc14/c++/bits/stl_tree.h:656:48: error: invalid use of incomplete type 'struct Martinez::SegmentComp'
656 | bool /* _Is_pod_comparator */ = __is_pod(_Key_compare)>
| ^~~~~~~~~~~~~~~~~~~~~~
martinez.h:40:16: note: forward declaration of 'struct Martinez::SegmentComp'
40 | struct SegmentComp : public std::function<bool(SweepEvent*, SweepEvent*)> { // for sorting edges in the sweep line
| ^~~~~~~~~~~
martinez.h:67:53: error: expected template-name before '<' token
67 | struct SweepEventComp : public std::function<bool(SweepEvent*, SweepEvent*)> { // for sortening events
| ^
martinez.h:67:53: error: expected '{' before '<' token
martinez.h:67:53: error: expected unqualified-id before '<' token
In file included from /opt/local/include/gcc14/c++/queue:66,
from martinez.h:17:
/opt/local/include/gcc14/c++/bits/stl_queue.h: In instantiation of 'class std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>':
martinez.h:72:67: required from here
72 | priority_queue<SweepEvent*, vector<SweepEvent*>, SweepEventComp> eq;
| ^~
/opt/local/include/gcc14/c++/bits/stl_queue.h:538:18: error: 'std::priority_queue<_Tp, _Sequence, _Compare>::comp' has incomplete type
538 | _Compare comp;
| ^~~~
martinez.h:67:16: note: forward declaration of 'struct Martinez::SweepEventComp'
67 | struct SweepEventComp : public std::function<bool(SweepEvent*, SweepEvent*)> { // for sortening events
| ^~~~~~~~~~~~~~
martinez.h:80:24: error: field 'sec' has incomplete type 'Martinez::SweepEventComp'
80 | SweepEventComp sec;
| ^~~
martinez.h:67:16: note: forward declaration of 'struct Martinez::SweepEventComp'
67 | struct SweepEventComp : public std::function<bool(SweepEvent*, SweepEvent*)> { // for sortening events
| ^~~~~~~~~~~~~~
In file included from /opt/local/include/gcc14/c++/bits/move.h:37,
from /opt/local/include/gcc14/c++/bits/exception_ptr.h:41,
from /opt/local/include/gcc14/c++/exception:166,
from /opt/local/include/gcc14/c++/ios:41,
from /opt/local/include/gcc14/c++/ostream:40,
from /opt/local/include/gcc14/c++/iostream:41,
from point.h:16,
from segment.h:16,
from connector.h:12:
/opt/local/include/gcc14/c++/type_traits: In substitution of 'template<class _Tp, class ... _Args> using std::__is_constructible_impl = std::__bool_constant<__is_constructible(_Tp, _Args ...)> [with _Tp = Martinez::SweepEventComp; _Args = {}]':
/opt/local/include/gcc14/c++/type_traits:1124:12: required from 'struct std::is_default_constructible<Martinez::SweepEventComp>'
1124 | struct is_default_constructible
| ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/type_traits:183:35: required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::is_default_constructible<Martinez::SweepEventComp>, std::is_default_constructible<std::vector<Martinez::SweepEvent*, std::allocator<Martinez::SweepEvent*> > >}]'
183 | __enable_if_t<bool(_Bn::value)>...>;
| ^~~~~
/opt/local/include/gcc14/c++/type_traits:199:42: required from 'struct std::__and_<std::is_default_constructible<Martinez::SweepEventComp>, std::is_default_constructible<std::vector<Martinez::SweepEvent*, std::allocator<Martinez::SweepEvent*> > > >'
199 | : decltype(__detail::__and_fn<_Bn...>(0))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:551:43: required by substitution of 'template<class _Seq, class _Requires> std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>::priority_queue() [with _Seq = std::vector<Martinez::SweepEvent*>; _Requires = <missing>]'
551 | template<typename _Seq = _Sequence, typename _Requires = typename
| ^~~~~~~~
martinez.h:29:40: required from here
29 | Martinez (Polygon& sp, Polygon& cp) : eq (), eventHolder (), subject (sp), clipping (cp), sec (), nint (0) {}
| ^~~~~
/opt/local/include/gcc14/c++/type_traits:1110:25: error: invalid use of incomplete type 'struct Martinez::SweepEventComp'
1110 | = __bool_constant<__is_constructible(_Tp, _Args...)>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
martinez.h:67:16: note: forward declaration of 'struct Martinez::SweepEventComp'
67 | struct SweepEventComp : public std::function<bool(SweepEvent*, SweepEvent*)> { // for sortening events
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/type_traits: In instantiation of 'struct std::is_default_constructible<Martinez::SweepEventComp>':
/opt/local/include/gcc14/c++/type_traits:183:35: required by substitution of 'template<class ... _Bn> std::__detail::__first_t<std::integral_constant<bool, true>, typename std::enable_if<(bool)(_Bn::value), void>::type ...> std::__detail::__and_fn(int) [with _Bn = {std::is_default_constructible<Martinez::SweepEventComp>, std::is_default_constructible<std::vector<Martinez::SweepEvent*, std::allocator<Martinez::SweepEvent*> > >}]'
183 | __enable_if_t<bool(_Bn::value)>...>;
| ^~~~~
/opt/local/include/gcc14/c++/type_traits:199:42: required from 'struct std::__and_<std::is_default_constructible<Martinez::SweepEventComp>, std::is_default_constructible<std::vector<Martinez::SweepEvent*, std::allocator<Martinez::SweepEvent*> > > >'
199 | : decltype(__detail::__and_fn<_Bn...>(0))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:551:43: required by substitution of 'template<class _Seq, class _Requires> std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>::priority_queue() [with _Seq = std::vector<Martinez::SweepEvent*>; _Requires = <missing>]'
551 | template<typename _Seq = _Sequence, typename _Requires = typename
| ^~~~~~~~
martinez.h:29:40: required from here
29 | Martinez (Polygon& sp, Polygon& cp) : eq (), eventHolder (), subject (sp), clipping (cp), sec (), nint (0) {}
| ^~~~~
/opt/local/include/gcc14/c++/type_traits:1127:52: error: static assertion failed: template argument must be a complete class or an unbounded array
1127 | static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/type_traits:1127:52: note: 'std::__is_complete_or_unbounded<__type_identity<Martinez::SweepEventComp> >((std::__type_identity<Martinez::SweepEventComp>(), std::__type_identity<Martinez::SweepEventComp>()))' evaluates to false
martinez.h: In constructor 'Martinez::Martinez(Polygon&, Polygon&)':
martinez.h:29:47: error: no matching function for call to 'std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>::priority_queue()'
29 | Martinez (Polygon& sp, Polygon& cp) : eq (), eventHolder (), subject (sp), clipping (cp), sec (), nint (0) {}
| ^~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:691:9: note: candidate: 'template<class _InputIterator, class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, _Sequence&&, const _Alloc&) [with _Alloc = _InputIterator; _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
691 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:691:9: note: candidate expects 5 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:679:9: note: candidate: 'template<class _InputIterator, class _Alloc, class, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, const _Sequence&, const _Alloc&) [with _Alloc = _InputIterator; <template-parameter-2-3> = _Alloc; _Requires = <template-parameter-1-3>; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
679 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:679:9: note: candidate expects 5 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:671:9: note: candidate: 'template<class _InputIterator, class _Alloc, class, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, const _Alloc&) [with _Alloc = _InputIterator; <template-parameter-2-3> = _Alloc; _Requires = <template-parameter-1-3>; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
671 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:671:9: note: candidate expects 4 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:663:9: note: candidate: 'template<class _InputIterator, class _Alloc, class, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Alloc&) [with _Alloc = _InputIterator; <template-parameter-2-3> = _Alloc; _Requires = <template-parameter-1-3>; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
663 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:663:9: note: candidate expects 3 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:649:9: note: candidate: 'template<class _InputIterator, class> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, _Sequence&&) [with <template-parameter-2-2> = _InputIterator; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
649 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:649:9: note: candidate expects 4 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:638:9: note: candidate: 'template<class _InputIterator, class> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&, const _Sequence&) [with <template-parameter-2-2> = _InputIterator; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
638 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:638:9: note: candidate expects 4 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:629:9: note: candidate: 'template<class _InputIterator, class> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(_InputIterator, _InputIterator, const _Compare&) [with <template-parameter-2-2> = _InputIterator; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
629 | priority_queue(_InputIterator __first, _InputIterator __last,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:629:9: note: candidate expects 2 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:594:9: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(std::priority_queue<_Tp, _Sequence, _Compare>&&, const _Alloc&) [with _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
594 | priority_queue(priority_queue&& __q, const _Alloc& __a)
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:594:9: note: candidate expects 2 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:590:9: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const std::priority_queue<_Tp, _Sequence, _Compare>&, const _Alloc&) [with _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
590 | priority_queue(const priority_queue& __q, const _Alloc& __a)
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:590:9: note: candidate expects 2 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:585:9: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, _Sequence&&, const _Alloc&) [with _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
585 | priority_queue(const _Compare& __x, _Sequence&& __c, const _Alloc& __a)
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:585:9: note: candidate expects 3 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:579:9: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Sequence&, const _Alloc&) [with _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
579 | priority_queue(const _Compare& __x, const _Sequence& __c,
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:579:9: note: candidate expects 3 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:573:9: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Alloc&) [with _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
573 | priority_queue(const _Compare& __x, const _Alloc& __a)
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:573:9: note: candidate expects 2 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:569:9: note: candidate: 'template<class _Alloc, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Alloc&) [with _Requires = _Alloc; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
569 | priority_queue(const _Alloc& __a)
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:569:9: note: candidate expects 1 argument, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:554:9: note: candidate: 'template<class _Seq, class _Requires> std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue() [with _Requires = _Seq; _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
554 | priority_queue()
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:554:9: note: substitution of deduced template arguments resulted in errors seen above
/opt/local/include/gcc14/c++/bits/stl_queue.h:563:7: note: candidate: 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, _Sequence&&) [with _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
563 | priority_queue(const _Compare& __x, _Sequence&& __s = _Sequence())
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:563:7: note: candidate expects 2 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:558:7: note: candidate: 'std::priority_queue<_Tp, _Sequence, _Compare>::priority_queue(const _Compare&, const _Sequence&) [with _Tp = Martinez::SweepEvent*; _Sequence = std::vector<Martinez::SweepEvent*>; _Compare = Martinez::SweepEventComp]'
558 | priority_queue(const _Compare& __x, const _Sequence& __s)
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:558:7: note: candidate expects 2 arguments, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:496:11: note: candidate: 'std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>::priority_queue(const std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>&)'
496 | class priority_queue
| ^~~~~~~~~~~~~~
/opt/local/include/gcc14/c++/bits/stl_queue.h:496:11: note: candidate expects 1 argument, 0 provided
/opt/local/include/gcc14/c++/bits/stl_queue.h:496:11: note: candidate: 'std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>::priority_queue(std::priority_queue<Martinez::SweepEvent*, std::vector<Martinez::SweepEvent*>, Martinez::SweepEventComp>&&)'
/opt/local/include/gcc14/c++/bits/stl_queue.h:496:11: note: candidate expects 1 argument, 0 provided
make: *** [connector.o] Error 1
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/tmp-build/geometry/src'
pkg: error running 'make' for the geometry package
Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/geometry" && /usr/bin/arch -arch $OCTAVE_ARCH /opt/local/bin/octave-cli -q -f -H --eval 'try; pkg build -verbose -nodeps /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/tmp-build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_octave_octave-geometry/octave-geometry/work/geometry-4.1.0.tar.gz; catch; disp(lasterror.message); exit(1); end_try_catch;'
Exit code: 1
Change History (7)
comment:1 Changed 10 months ago by barracuda156
comment:2 follow-up: 3 Changed 10 months ago by Schamschula (Marius Schamschula)
No, without the patch it didn't build at all on my machine:
macOS 14.7.3 23H417 arm64 Xcode 16.2 16C5032a
I get the following errors
/usr/bin/arch -arch arm64 /opt/local/bin/mkoctfile-10.1.0 --verbose -c connector.cpp -o connector.o
ccache /usr/bin/clang++ -c -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -fPIC -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 connector.cpp -o connector.o
In file included from connector.cpp:9:
In file included from ./connector.h:13:
./martinez.h:40:30: error: no template named 'binary_function'; did you mean '__binary_function'?
40 | struct SegmentComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sorting edges in the sweep line
| ^~~~~~~~~~~~~~~
| __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
49 | using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
| ^
In file included from connector.cpp:9:
In file included from ./connector.h:13:
./martinez.h:67:33: error: no template named 'binary_function'; did you mean '__binary_function'?
67 | struct SweepEventComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sortening events
| ^~~~~~~~~~~~~~~
| __binary_function
/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here
49 | using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
| ^
2 errors generated.
make: *** [connector.o] Error 1
pkg: error running 'make' for the geometry package
Command failed: cd "/opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_octave_octave-geometry/octave-geometry/work/geometry" && /usr/bin/arch -arch $OCTAVE_ARCH /opt/local/bin/octave-cli -q -f -H --eval 'try; pkg build -verbose -nodeps /opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_octave_octave-geometry/octave-geometry/work/tmp-build /opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_octave_octave-geometry/octave-geometry/work/geometry-4.1.0.tar.gz; catch; disp(lasterror.message); exit(1); end_try_catch;'
Exit code: 1
This is the very issue that I referenced in my commit: https://octave.discourse.group/t/geometry-package-installation/5915/8
comment:3 Changed 10 months ago by barracuda156
Replying to Schamschula:
No, without the patch it didn't build at all on my machine:
macOS 14.7.3 23H417 arm64 Xcode 16.2 16C5032aI get the following errors
/usr/bin/arch -arch arm64 /opt/local/bin/mkoctfile-10.1.0 --verbose -c connector.cpp -o connector.o ccache /usr/bin/clang++ -c -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -fPIC -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -arch arm64 connector.cpp -o connector.o In file included from connector.cpp:9: In file included from ./connector.h:13: ./martinez.h:40:30: error: no template named 'binary_function'; did you mean '__binary_function'? 40 | struct SegmentComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sorting edges in the sweep line | ^~~~~~~~~~~~~~~ | __binary_function /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here 49 | using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>; | ^ In file included from connector.cpp:9: In file included from ./connector.h:13: ./martinez.h:67:33: error: no template named 'binary_function'; did you mean '__binary_function'? 67 | struct SweepEventComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sortening events | ^~~~~~~~~~~~~~~ | __binary_function /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/c++/v1/__functional/binary_function.h:49:1: note: '__binary_function' declared here 49 | using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>; | ^ 2 errors generated. make: *** [connector.o] Error 1 pkg: error running 'make' for the geometry package Command failed: cd "/opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_octave_octave-geometry/octave-geometry/work/geometry" && /usr/bin/arch -arch $OCTAVE_ARCH /opt/local/bin/octave-cli -q -f -H --eval 'try; pkg build -verbose -nodeps /opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_octave_octave-geometry/octave-geometry/work/tmp-build /opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_octave_octave-geometry/octave-geometry/work/geometry-4.1.0.tar.gz; catch; disp(lasterror.message); exit(1); end_try_catch;' Exit code: 1This is the very issue that I referenced in my commit: https://octave.discourse.group/t/geometry-package-installation/5915/8
I have replied there already. The patch is either incomplete or incorrect, the code should compile with gcc and clang both, and it does not now.
comment:4 follow-up: 5 Changed 10 months ago by Schamschula (Marius Schamschula)
The above error is w/o the patch.
I get a clean build with the patch, as do all the build bots (other than on platforms that can build octave itself due to missing qt5 libraries).
comment:5 Changed 10 months ago by barracuda156
Replying to Schamschula:
The above error is w/o the patch.
I get a clean build with the patch, as do all the build bots (other than on platforms that can build octave itself due to missing qt5 libraries).
I understand that the patch works for clang, but it breaks what was working before with gcc. That cannot possibly be the right thing to do.
comment:6 Changed 10 months ago by barracuda156
This can be closed, the patch was fixed correctly in the master.
comment:7 Changed 10 months ago by Schamschula (Marius Schamschula)
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |

Without this patch it built fine with C++17, though complained about deprecated function:
Executing: cd "/opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/geometry" && /usr/bin/arch -arch $OCTAVE_ARCH /opt/local/bin/octave-cli -q -f -H --eval 'try; pkg build -verbose -nodeps /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/tmp-build /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/geometry-4.1.0.tar.gz; catch; disp(lasterror.message); exit(1); end_try_catch;' 2025-05-04 21:06:36.128 octave-cli-10.1.0-orig[34083:b0b] CFPreferences: user home directory at file://localhost/opt/local/var/macports/home/ is unavailable. User domains will be volatile. warning: creating build directory /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/tmp-build warning: called from build at line 49 column 5 pkg at line 744 column 7 make: Entering directory `/opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/tmp-build/geometry/src' /usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose -Wall -mex -g clipper.cpp mexclipper.cpp /opt/local/bin/gcc-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -fexceptions -pipe -Os -arch ppc -g -Wall -I. -DMEX_DEBUG /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-4pZ8wf.c -o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-4gtLyC.o /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -g -Wall -I. -DMEX_DEBUG clipper.cpp -o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-rCWVBf.o /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -g -Wall -I. -DMEX_DEBUG mexclipper.cpp -o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-pRpFZ4.o /opt/local/bin/g++-mp-14 -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -g -Wall -o clipper.mex /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-4gtLyC.o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-rCWVBf.o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-pRpFZ4.o -bundle -undefined dynamic_lookup -bind_at_load -L/opt/local/lib/octave/10.x.x -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -L/opt/local/lib/octave/10.1.0 -loctmex -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -Wl,-rpath,/opt/local/lib/libgcc -arch ppc /usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose -c connector.cpp -o connector.o /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc connector.cpp -o connector.o In file included from connector.h:13, from connector.cpp:9: martinez.h:40:37: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 40 | struct SegmentComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sorting edges in the sweep line | ^~~~~~~~~~~~~~~ In file included from /opt/local/include/gcc14/c++/string:49, from /opt/local/include/gcc14/c++/bits/locale_classes.h:40, from /opt/local/include/gcc14/c++/bits/ios_base.h:41, from /opt/local/include/gcc14/c++/ios:44, from /opt/local/include/gcc14/c++/ostream:40, from /opt/local/include/gcc14/c++/iostream:41, from point.h:16, from segment.h:16, from connector.h:12: /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ martinez.h:67:40: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 67 | struct SweepEventComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sortening events | ^~~~~~~~~~~~~~~ /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ /usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose -c martinez.cpp -o martinez.o /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc martinez.cpp -o martinez.o In file included from martinez.cpp:9: martinez.h:40:37: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 40 | struct SegmentComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sorting edges in the sweep line | ^~~~~~~~~~~~~~~ In file included from /opt/local/include/gcc14/c++/bits/refwrap.h:39, from /opt/local/include/gcc14/c++/vector:68, from polygon.h:12, from martinez.h:12: /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ martinez.h:67:40: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 67 | struct SweepEventComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sortening events | ^~~~~~~~~~~~~~~ /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ /usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose -c polygon.cpp -o polygon.o /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc polygon.cpp -o polygon.o polygon.cpp:96:37: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 96 | struct SegmentComp : public binary_function<SweepEvent*, SweepEvent*, bool> { | ^~~~~~~~~~~~~~~ In file included from /opt/local/include/gcc14/c++/bits/refwrap.h:39, from /opt/local/include/gcc14/c++/vector:68, from polygon.h:12, from polygon.cpp:9: /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ polygon.cpp:119:40: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 119 | struct SweepEventComp : public binary_function<SweepEvent*, SweepEvent*, bool> { | ^~~~~~~~~~~~~~~ /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ /usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose -c utilities.cpp -o utilities.o /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc utilities.cpp -o utilities.o /usr/bin/arch -arch ppc /opt/local/bin/mkoctfile-10.1.0 --verbose connector.o martinez.o polygon.o utilities.o polybool_mrf.cc -o polybool_mrf.oct /opt/local/bin/g++-mp-14 -c -I/opt/local/include -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc polybool_mrf.cc -o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-mnDg4X.o In file included from polybool_mrf.cc:21: martinez.h:40:37: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 40 | struct SegmentComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sorting edges in the sweep line | ^~~~~~~~~~~~~~~ In file included from /opt/local/include/gcc14/c++/bits/refwrap.h:39, from /opt/local/include/gcc14/c++/vector:68, from polygon.h:12, from polybool_mrf.cc:19: /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ martinez.h:67:40: warning: 'template<class _Arg1, class _Arg2, class _Result> struct std::binary_function' is deprecated [-Wdeprecated-declarations] 67 | struct SweepEventComp : public binary_function<SweepEvent*, SweepEvent*, bool> { // for sortening events | ^~~~~~~~~~~~~~~ /opt/local/include/gcc14/c++/bits/stl_function.h:131:12: note: declared here 131 | struct binary_function | ^~~~~~~~~~~~~~~ /opt/local/bin/g++-mp-14 -I/opt/local/include/octave-10.1.0/octave/.. -I/opt/local/include/octave-10.1.0/octave -I/opt/local/include -pthread -pipe -Os -std=gnu++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -o polybool_mrf.oct connector.o martinez.o polygon.o utilities.o /opt/local/var/macports/build/_opt_local_ppcports_octave_octave-geometry/octave-geometry/work/.tmp/oct-mnDg4X.o -bundle -undefined dynamic_lookup -bind_at_load -L/opt/local/lib/octave/10.x.x -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -Wl,-rpath,/opt/local/lib/libgcc -arch ppc -L/opt/local/lib/octave/10.1.0 -loctinterp -loctave