#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

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

comment:2 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 in reply to:  2 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 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

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 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).

Last edited 10 months ago by Schamschula (Marius Schamschula) (previous) (diff)

comment:5 in reply to:  4 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: newclosed
Note: See TracTickets for help on using tickets.