Re: qhull6.3.1-2012.1-3 broken on Xcode 6.3's Apple Clang 6.1

Jack Howarth <[email protected]>
Newsgroups gmane.os.apple.fink.devel
Message-ID <CAP5Ds0CKEvRROKhMuhFVa97+=XafLDkogUvBMtEL+1ev4_-4MQ@mail.gmail.com>
The attached packaging for qhull6.3.1 adds the patch from
https://svnweb.freebsd.org/ports?view=revision&revision=374949 and
passes 'fink -m' against Xcode 6.3 on 10.10.
          Jack

On Sat, Apr 11, 2015 at 8:48 AM, Jack Howarth <[email protected]> wrote:
> The new Xcode 6.3's Apple Clang 6.1 compiler breaks the build of
> qhull6.3.1-2012.1-3.
>
> g++ -c -O2 -Dqh_QHpointer -Isrc/ -Isrc/libqhullcpp -Isrc/libqhull
> -Wall -Wcast-qual -Wextra -Wwrite-strings  -Wshadow -Wconversion  -o
> src/user_eg3/user_eg3.o src/user_eg3/user_eg3.cpp
> ...
> src/libqhullcpp/Coordinates.h:154:22: error: reference to
> 'random_access_iterator_tag' is ambiguous
>         typedef std::random_access_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:353: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 {};
>                              ^
> 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 src/user_eg3/user_eg3.cpp:3:
> In file included from src/libqhullcpp/RboxPoints.h:12:
> In file included from src/libqhullcpp/QhullPoint.h:15:
> src/libqhullcpp/Coordinates.h:201:22: error: reference to
> 'random_access_iterator_tag' is ambiguous
>         typedef std::random_access_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:353: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 {};
>                              ^
> 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 src/user_eg3/user_eg3.cpp:3:
> In file included from src/libqhullcpp/RboxPoints.h:12:
> In file included from src/libqhullcpp/QhullPoint.h:15:
> src/libqhullcpp/Coordinates.h:84:66: warning: implicit conversion
> changes signedness: 'int' to 'size_type' (aka 'unsigned long')
> [-Wsign-conversion]
>     coordT             &at(int idx) { return coordinate_array.at(idx); }
>                                              ~~~~~~~~~~~~~~~~    ^~~
> src/libqhullcpp/Coordinates.h:85:72: warning: implicit conversion
> changes signedness: 'int' to 'size_type' (aka 'unsigned long')
> [-Wsign-conversion]
>     const coordT       &at(int idx) const { return coordinate_array.at(idx); }
>                                                    ~~~~~~~~~~~~~~~~    ^~~
> src/libqhullcpp/Coordinates.h:95:81: warning: implicit conversion
> changes signedness: 'int' to 'size_type' (aka 'unsigned long')
> [-Wsign-conversion]
>     coordT            &operator[](int idx) { return
> coordinate_array.operator[](idx); }
>                                                     ~~~~~~~~~~~~~~~~
>          ^~~
> gcc -c -Dqh_QHpointer -O2 -fPIC -ansi -fno-common -Isrc/libqhull -Wall
> -Wcast-qual -Wextra -Wwrite-strings -Wshadow -o
> src/libqhullstaticp/qset.o src/libqhull/qset.c
> src/libqhullcpp/Coordinates.h:96:87: warning: implicit conversion
> changes signedness: 'int' to 'size_type' (aka 'unsigned long')
> [-Wsign-conversion]
>     const coordT      &operator[](int idx) const { return
> coordinate_array.operator[](idx); }
>
> ~~~~~~~~~~~~~~~~            ^~~
> src/libqhullcpp/Coordinates.h:132:67: warning: implicit conversion
> changes signedness: 'int' to 'size_type' (aka 'unsigned long')
> [-Wsign-conversion]
>     void                reserve(int i) { coordinate_array.reserve(i); }
>                                          ~~~~~~~~~~~~~~~~         ^
> In file included from src/user_eg3/user_eg3.cpp:3:
> In file included from src/libqhullcpp/RboxPoints.h:13:
> In file included from src/libqhullcpp/PointCoordinates.h:12:
> src/libqhullcpp/QhullPoints.h:123:22: error: reference to
> 'random_access_iterator_tag' is ambiguous
>         typedef std::random_access_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:353: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 {};
>                              ^
> 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 src/user_eg3/user_eg3.cpp:3:
> In file included from src/libqhullcpp/RboxPoints.h:13:
> In file included from src/libqhullcpp/PointCoordinates.h:12:
> src/libqhullcpp/QhullPoints.h:166:22: error: reference to
> 'random_access_iterator_tag' is ambiguous
>         typedef std::random_access_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:353: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 {};
>                              ^
> 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 src/user_eg3/user_eg3.cpp:3:
> In file included from src/libqhullcpp/RboxPoints.h:13:
> In file included from src/libqhullcpp/PointCoordinates.h:12:
> src/libqhullcpp/QhullPoints.h:80:100: warning: implicit conversion
> changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
>     int                 extraCoordinatesCount() const { return
> point_dimension>0 ?
> (int)((point_end-point_first)%(size_t)point_dimension) : 0; }  //
> WARN64
>
>                    ~~~~~~~~~^~~~~~~~~~~~ ~
> src/libqhullcpp/QhullPoints.h:86:89: warning: operand of ? changes
> signedness: 'long' to 'size_t' (aka 'unsigned long')
> [-Wsign-conversion]
>     size_t              size() const { return (point_dimension ?
> (point_end-point_first)/point_dimension : 0); }
>                                        ~~~~~~
> ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
> gcc -c -Dqh_QHpointer -O2 -fPIC -ansi -fno-common -Isrc/libqhull -Wall
> -Wcast-qual -Wextra -Wwrite-strings -Wshadow -o
> src/libqhullstaticp/mem.o src/libqhull/mem.c
> In file included from src/user_eg3/user_eg3.cpp:6:
> In file included from src/libqhullcpp/QhullFacet.h:15:
> src/libqhullcpp/QhullSet.h:81:47: warning: implicit conversion changes
> signedness: 'int' to 'size_t' (aka 'unsigned long')
> [-Wsign-conversion]
>     size_t              size() const { return count(); }
>                                        ~~~~~~ ^~~~~~~
> In file included from src/user_eg3/user_eg3.cpp:6:
> In file included from src/libqhullcpp/QhullFacet.h:16:
> src/libqhullcpp/QhullPointSet.h:122:22: error: reference to
> 'bidirectional_iterator_tag' is ambiguous
>         typedef std::bidirectional_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:352:30:
> note: candidate found by name lookup is
>       'std::__1::bidirectional_iterator_tag'
> struct _LIBCPP_TYPE_VIS_ONLY bidirectional_iterator_tag : public
> forward_iterator_tag {};
>                              ^
> src/libqhullcpp/QhullIterator.h:20:24: note: candidate found by name
> lookup is 'std::bidirectional_iterator_tag'
> namespace std { struct bidirectional_iterator_tag; struct
> random_access_iterator_tag; }
>                        ^
> In file included from src/user_eg3/user_eg3.cpp:6:
> In file included from src/libqhullcpp/QhullFacet.h:16:
> src/libqhullcpp/QhullPointSet.h:170:22: error: reference to
> 'random_access_iterator_tag' is ambiguous
>         typedef std::random_access_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:353: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 {};
>                              ^
> 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 src/user_eg3/user_eg3.cpp:6:
> src/libqhullcpp/QhullFacet.h:73:66: warning: operand of ? changes
> signedness: 'unsigned int' to 'int' [-Wsign-conversion]
>     int                 id() const { return qh_facet ? qh_facet->id : -1; }
>                                      ~~~~~~            ~~~~~~~~~~^~
> In file included from src/user_eg3/user_eg3.cpp:7:
> In file included from src/libqhullcpp/QhullFacetList.h:12:
> src/libqhullcpp/QhullLinkedList.h:118:22: error: reference to
> 'bidirectional_iterator_tag' is ambiguous
>         typedef std::bidirectional_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:352:30:
> note: candidate found by name lookup is
>       'std::__1::bidirectional_iterator_tag'
> struct _LIBCPP_TYPE_VIS_ONLY bidirectional_iterator_tag : public
> forward_iterator_tag {};
>                              ^
> src/libqhullcpp/QhullLinkedList.h:12:24: note: candidate found by name
> lookup is 'std::bidirectional_iterator_tag'
> namespace std { struct bidirectional_iterator_tag; struct
> random_access_iterator_tag; }
>                        ^
> src/libqhullcpp/QhullLinkedList.h:151:22: error: reference to
> 'bidirectional_iterator_tag' is ambiguous
>         typedef std::bidirectional_iterator_tag  iterator_category;
>                      ^
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iterator:352:30:
> note: candidate found by name lookup is
>       'std::__1::bidirectional_iterator_tag'
> struct _LIBCPP_TYPE_VIS_ONLY bidirectional_iterator_tag : public
> forward_iterator_tag {};
>                              ^
> src/libqhullcpp/QhullLinkedList.h:12:24: note: candidate found by name
> lookup is 'std::bidirectional_iterator_tag'
> namespace std { struct bidirectional_iterator_tag; struct
> random_access_iterator_tag; }
>                        ^
> src/libqhullcpp/QhullLinkedList.h:70:61: warning: unused parameter 'l'
> [-Wunused-parameter]
>     QhullLinkedList<T> &operator=(const QhullLinkedList<T> &l) {}
>                                                             ^

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF

_______________________________________________
Fink-devel mailing list
[email protected]
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel
qhull6.3.1.info (application/octet-stream, 3 KB) - not displayed
qhull6.3.1.patch (application/octet-stream, 3.4 KB)
diff -Nurd qhull-2012.1/Makefile qhull-2012.1.patched/Makefile
--- qhull-2012.1/Makefile	2012-02-19 21:55:57.000000000 -0500
+++ qhull-2012.1.patched/Makefile	2012-02-20 15:22:35.000000000 -0500
@@ -72,7 +72,7 @@
 # You may build the qhull programs without using a library
 # make qhullx
 
-DESTDIR = /usr/local
+DESTDIR = @INSTPREFIX@
 BINDIR	= $(DESTDIR)/bin
 INCDIR	= $(DESTDIR)/include
 LIBDIR	= $(DESTDIR)/lib
@@ -87,14 +87,15 @@
 
 #for Gnu's gcc compiler, -O2 for optimization, -g for debugging
 CC        = gcc
-CC_OPTS1  = -O2 -fPIC -ansi -Isrc/libqhull $(CC_WARNINGS)
+CC_OPTS1  = -O2 -fPIC -ansi -fno-common -Isrc/libqhull $(CC_WARNINGS)
 CXX       = g++
 
 # libqhullcpp must be before libqhull
 CXX_OPTS1 = -O2 -Dqh_QHpointer -Isrc/ -Isrc/libqhullcpp -Isrc/libqhull $(CXX_WARNINGS)
 
 # for shared library link
-CC_OPTS3  =
+CC_OPTS3  = -dynamiclib -install_name @FINKPREFIX@/lib/libqhull.6.3.1.dylib
+CC_OPTS4  = -dynamiclib -install_name @FINKPREFIX@/lib/libqhull_p.6.3.1.dylib
 
 # Define qhull_VERSION in CMakeLists.txt, Makefile, and qhull-warn.pri
 # Truncated version in qhull-exports.def, qhull_p-exports.def, 
@@ -102,7 +103,7 @@
 #  qhull_p.so -- allocated qh_qhT global data structure (qh_QHpointer=1).  Required for libqhullcpp
 #  qhull_m.so -- future version of Qhull with qh_qhT passed as an argument.
 qhull_SOVERSION=6
-SO  = so.6.3.1
+SO  = 6.3.1.dylib
 
 # On MinGW, 
 #   make SO=dll
@@ -515,11 +516,11 @@
 
 lib/libqhull.$(SO): $(LIBQHULLS_OBJS)
 	$(CC) -shared -o $@ $(CC_OPTS3) $^
-	cd lib && ln -f -s libqhull.$(SO) libqhull.so
+	cd lib && ln -f -s libqhull.$(SO) libqhull.dylib
 
 lib/libqhull_p.$(SO): $(LIBQHULLSP_OBJS)
-	$(CC) -shared -o $@ $(CC_OPTS3) $^
-	cd lib && ln -f -s libqhull_p.$(SO) libqhull_p.so
+	$(CC) -shared -o $@ $(CC_OPTS4) $^
+	cd lib && ln -f -s libqhull_p.$(SO) libqhull_p.dylib
 
 # don't use ../qconvex.	 Does not work on Red Hat Linux
 bin/qconvex: src/qconvex/qconvex.o lib/libqhullstatic.a
@@ -550,7 +551,7 @@
 	@echo -e '==   "make SO=dll" and copy lib/libqhull_p.dll to bin/'
 	@echo -e '== If user_eg fails to link, switch to -lqhullstatic_p'
 	@echo -e '===================================================\n'
-	$(CC) -o $@ $< -Dqh_QHpointer  $(CC_OPTS1) $(CC_OPTS3) -Llib -lqhull_p -lm
+	$(CC) -o $@ $< -Dqh_QHpointer  $(CC_OPTS1) -Llib -lqhull_p -lm
 
 # You may use  -lqhullstatic instead of -lqhull 
 bin/user_eg2: src/user_eg2/user_eg2.o lib/libqhull.$(SO)
diff -uNr qhull-2012.1.orig/src/libqhullcpp/QhullIterator.h qhull-2012.1/src/libqhullcpp/QhullIterator.h
--- qhull-2012.1.orig/src/libqhullcpp/QhullIterator.h	2012-01-25 22:32:05.000000000 -0500
+++ qhull-2012.1/src/libqhullcpp/QhullIterator.h	2015-04-11 09:04:07.000000000 -0400
@@ -16,8 +16,7 @@
 #include <assert.h>
 #include <string>
 #include <vector>
-//! Avoid dependence on <iterator>
-namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; }
+#include <iterator>
 
 namespace orgQhull {
 
diff -uNr qhull-2012.1.orig/src/libqhullcpp/QhullLinkedList.h qhull-2012.1/src/libqhullcpp/QhullLinkedList.h
--- qhull-2012.1.orig/src/libqhullcpp/QhullLinkedList.h	2012-01-25 22:32:05.000000000 -0500
+++ qhull-2012.1/src/libqhullcpp/QhullLinkedList.h	2015-04-11 09:05:18.000000000 -0400
@@ -9,7 +9,7 @@
 #ifndef QHULLLINKEDLIST_H
 #define QHULLLINKEDLIST_H
 
-namespace std { struct bidirectional_iterator_tag; struct random_access_iterator_tag; }
+#include <iterator>
 
 #include "QhullError.h"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.