Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Dec 2014 14:33:25 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 196127] New: Fix math/qhull build with clang 3.5.0
Message-ID:  <bug-196127-13@https.bugs.freebsd.org/bugzilla/>

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

            Bug ID: 196127
           Summary: Fix math/qhull build with clang 3.5.0
           Product: Ports Tree
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: Individual Port(s)
          Assignee: stephen@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: stephen@FreeBSD.org
             Flags: maintainer-feedback?(stephen@FreeBSD.org)

Created attachment 150764
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=150764&action=edit
Fix math/qhull build with clang 3.5.0

The math/qhull port fails to compile with clang 3.5.0, due to the following
error:

In file included from
/wrkdirs/usr/ports/math/qhull/work/qhull-2012.1/src/libqhullcpp/Coordinates.cpp:11:
/wrkdirs/usr/ports/math/qhull/work/qhull-2012.1/src/libqhullcpp/Coordinates.h:154:22:
error: reference to 'random_access_iterator_tag' is ambiguous
        typedef std::random_access_iterator_tag  iterator_category;
                     ^
/usr/include/c++/v1/iterator:354:30: note: candidate found by name lookup is
'std::__1::random_access_iterator_tag'
struct _LIBCPP_TYPE_VIS_ONLY random_access_iterator_tag : public
bidirectional_iterator_tag {};
                             ^
/wrkdirs/usr/ports/math/qhull/work/qhull-2012.1/src/libqhullcpp/QhullIterator.h:20:59:
note: candidate found by name lookup is 'std::random_access_iterator_tag'
namespace std { struct bidirectional_iterator_tag; struct
random_access_iterator_tag; }
                                                          ^
In file included from
/wrkdirs/usr/ports/math/qhull/work/qhull-2012.1/src/libqhullcpp/Coordinates.cpp:11:
/wrkdirs/usr/ports/math/qhull/work/qhull-2012.1/src/libqhullcpp/Coordinates.h:201:22:
error: reference to 'random_access_iterator_tag' is ambiguous
        typedef std::random_access_iterator_tag  iterator_category;
                     ^
/usr/include/c++/v1/iterator:354:30: note: candidate found by name lookup is
'std::__1::random_access_iterator_tag'
struct _LIBCPP_TYPE_VIS_ONLY random_access_iterator_tag : public
bidirectional_iterator_tag {};
                             ^
/wrkdirs/usr/ports/math/qhull/work/qhull-2012.1/src/libqhullcpp/QhullIterator.h:20:59:
note: candidate found by name lookup is 'std::random_access_iterator_tag'
namespace std { struct bidirectional_iterator_tag; struct
random_access_iterator_tag; }
                                                          ^
2 errors generated.

This is because qhull tries to avoid including <iterator>, and rolls its own
(incompatible) std::random_access_iterator_tag and
std::bidrectional_iterator_tag.  These are not full compatible with libc++'s
own declarations, and clang 3.5.x has become more strict about matching them.

The fix is to replace the hand-rolled declarations with #include <iterator>
statements.  This will work for any C++ standard library.

--- Comment #1 from Bugzilla Automation <bugzilla@FreeBSD.org> ---
Auto-assigned to maintainer stephen@FreeBSD.org

-- 
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-196127-13>