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>