Index: head/devel/libxs/Makefile =================================================================== --- head/devel/libxs/Makefile (revision 403246) +++ head/devel/libxs/Makefile (revision 403247) @@ -1,78 +1,91 @@ # Created by: Veniamin Gvozdikov # $FreeBSD$ PORTNAME= libxs PORTVERSION= 1.2.0 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= devel MASTER_SITES= http://download.crossroads.io/ MAINTAINER= vg@FreeBSD.org COMMENT= Open source lightweight messaging layer LICENSE= GPLv3 GNU_CONFIGURE= yes -USES= pathfix pkgconfig libtool +USES= compiler:features pathfix pkgconfig libtool USE_LDCONFIG= yes -USE_GCC= yes OPTIONS_DEFINE= DEBUG DOCS PLUGINS ZMQ EXTERNAL_DESC= PGM extension from ports INTERNAL_DESC= PGM extension PLUGINS_DESC= Additional plugins ZMQ_DESC= Compatibility with ZMQ OPTIONS_RADIO= PGM OPTIONS_RADIO_PGM= INTERNAL EXTERNAL OPTIONS_DEFAULT=PLUGINS -.include +.include +.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 36 && \ + !${COMPILER_FEATURES:Mlibstdc++} +# Allow declaration of map and multimap iterator with incomplete mapped type +# by applying upstream change r231119 to a copy of our local c++ headers. +# This fix is not needed for clang 3.4 on 9.3 which uses libstdc++. +EXTRA_PATCHES+= ${FILESDIR}/extra-patch-map +CPPFLAGS+= -I${WRKSRC}/map-fix + +post-extract: + ${MKDIR} ${WRKSRC}/map-fix + ${CP} /usr/include/c++/v1/__tree /usr/include/c++/v1/map \ + ${WRKSRC}/map-fix/. +.endif + .if ${PORT_OPTIONS:MDEBUG} CONFIGURE_ARGS+= --enable-debug .endif .if ${PORT_OPTIONS:MDOCS} BUILD_DEPENDS+= asciidoc:${PORTSDIR}/textproc/asciidoc \ xmlto:${PORTSDIR}/textproc/xmlto \ docbook-xml>0:${PORTSDIR}/textproc/docbook-xml .else CONFIGURE_ARGS+= --without-documentation .endif .if ${PORT_OPTIONS:MINTERNAL} CONFIGURE_ARGS+= --with-pgm USES+= perl5 CFLAGS+= -fPIC .endif .if ${PORT_OPTIONS:MEXTERNAL} CONFIGURE_ARGS+= --with-system-pgm LIB_DEPENDS+= libpgm.so:${PORTSDIR}/net/openpgm .endif .if ${PORT_OPTIONS:MPLUGINS} CONFIGURE_ARGS+= --enable-plugins=yes .else CONFIGURE_ARGS+= --enable-plugins=no .endif .if ${PORT_OPTIONS:MZMQ} CONFIGURE_ARGS+= --enable-libzmq CONFLICTS= zmq-* PLIST_SUB+= ZMQ="" .else PLIST_SUB+= ZMQ="@comment " .endif pre-configure: # fix for clang build @${REINPLACE_CMD} "/^libxs_werror=/ s|yes|no|" \ ${WRKSRC}/configure .if ${PORT_OPTIONS:MEXTERNAL} ${REINPLACE_CMD} "s|openpgm-5.1|openpgm-5.2|g" \ ${WRKSRC}/configure .endif -.include +.include Index: head/devel/libxs/files/extra-patch-map =================================================================== --- head/devel/libxs/files/extra-patch-map (nonexistent) +++ head/devel/libxs/files/extra-patch-map (revision 403247) @@ -0,0 +1,165 @@ +--- map-fix/__tree.orig 2015-11-10 21:58:57.802092405 -0800 ++++ map-fix/__tree 2015-11-10 21:59:00.724090284 -0800 +@@ -622,8 +622,6 @@ + { + typedef _NodePtr __node_pointer; + typedef typename pointer_traits<__node_pointer>::element_type __node; +- typedef typename __node::base __node_base; +- typedef typename __node_base::pointer __node_base_pointer; + + __node_pointer __ptr_; + +@@ -652,17 +650,21 @@ + {return pointer_traits::pointer_to(__ptr_->__value_);} + + _LIBCPP_INLINE_VISIBILITY +- __tree_iterator& operator++() +- {__ptr_ = static_cast<__node_pointer>(__tree_next(static_cast<__node_base_pointer>(__ptr_))); +- return *this;} ++ __tree_iterator& operator++() { ++ __ptr_ = static_cast<__node_pointer>( ++ __tree_next(static_cast(__ptr_))); ++ return *this; ++ } + _LIBCPP_INLINE_VISIBILITY + __tree_iterator operator++(int) + {__tree_iterator __t(*this); ++(*this); return __t;} + + _LIBCPP_INLINE_VISIBILITY +- __tree_iterator& operator--() +- {__ptr_ = static_cast<__node_pointer>(__tree_prev(static_cast<__node_base_pointer>(__ptr_))); +- return *this;} ++ __tree_iterator& operator--() { ++ __ptr_ = static_cast<__node_pointer>( ++ __tree_prev(static_cast(__ptr_))); ++ return *this; ++ } + _LIBCPP_INLINE_VISIBILITY + __tree_iterator operator--(int) + {__tree_iterator __t(*this); --(*this); return __t;} +@@ -691,14 +693,6 @@ + { + typedef _ConstNodePtr __node_pointer; + typedef typename pointer_traits<__node_pointer>::element_type __node; +- typedef typename __node::base __node_base; +- typedef typename pointer_traits<__node_pointer>::template +-#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES +- rebind<__node_base> +-#else +- rebind<__node_base>::other +-#endif +- __node_base_pointer; + + __node_pointer __ptr_; + +@@ -743,17 +737,39 @@ + {return pointer_traits::pointer_to(__ptr_->__value_);} + + _LIBCPP_INLINE_VISIBILITY +- __tree_const_iterator& operator++() +- {__ptr_ = static_cast<__node_pointer>(__tree_next(static_cast<__node_base_pointer>(__ptr_))); +- return *this;} ++ __tree_const_iterator& operator++() { ++ typedef typename pointer_traits<__node_pointer>::template ++#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES ++ rebind ++#else ++ rebind::other ++#endif ++ __node_base_pointer; ++ ++ __ptr_ = static_cast<__node_pointer>( ++ __tree_next(static_cast<__node_base_pointer>(__ptr_))); ++ return *this; ++ } ++ + _LIBCPP_INLINE_VISIBILITY + __tree_const_iterator operator++(int) + {__tree_const_iterator __t(*this); ++(*this); return __t;} + + _LIBCPP_INLINE_VISIBILITY +- __tree_const_iterator& operator--() +- {__ptr_ = static_cast<__node_pointer>(__tree_prev(static_cast<__node_base_pointer>(__ptr_))); +- return *this;} ++ __tree_const_iterator& operator--() { ++ typedef typename pointer_traits<__node_pointer>::template ++#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES ++ rebind ++#else ++ rebind::other ++#endif ++ __node_base_pointer; ++ ++ __ptr_ = static_cast<__node_pointer>( ++ __tree_prev(static_cast<__node_base_pointer>(__ptr_))); ++ return *this; ++ } ++ + _LIBCPP_INLINE_VISIBILITY + __tree_const_iterator operator--(int) + {__tree_const_iterator __t(*this); --(*this); return __t;} +--- map-fix/map.orig 2015-11-10 21:24:49.362267208 -0800 ++++ map-fix/map 2015-11-10 21:25:09.501230487 -0800 +@@ -644,14 +644,25 @@ + + #endif + ++template ++struct __extract_key_value_types; ++ ++template ++struct __extract_key_value_types<__value_type<_Key, _Tp> > ++{ ++ typedef _Key const __key_type; ++ typedef _Tp __mapped_type; ++}; ++ + template + class _LIBCPP_TYPE_VIS_ONLY __map_iterator + { + _TreeIterator __i_; + + typedef typename _TreeIterator::__pointer_traits __pointer_traits; +- typedef const typename _TreeIterator::value_type::value_type::first_type __key_type; +- typedef typename _TreeIterator::value_type::value_type::second_type __mapped_type; ++ typedef typename _TreeIterator::value_type __value_type; ++ typedef typename __extract_key_value_types<__value_type>::__key_type __key_type; ++ typedef typename __extract_key_value_types<__value_type>::__mapped_type __mapped_type; + public: + typedef bidirectional_iterator_tag iterator_category; + typedef pair<__key_type, __mapped_type> value_type; +@@ -715,8 +726,9 @@ + _TreeIterator __i_; + + typedef typename _TreeIterator::__pointer_traits __pointer_traits; +- typedef const typename _TreeIterator::value_type::value_type::first_type __key_type; +- typedef typename _TreeIterator::value_type::value_type::second_type __mapped_type; ++ typedef typename _TreeIterator::value_type __value_type; ++ typedef typename __extract_key_value_types<__value_type>::__key_type __key_type; ++ typedef typename __extract_key_value_types<__value_type>::__mapped_type __mapped_type; + public: + typedef bidirectional_iterator_tag iterator_category; + typedef pair<__key_type, __mapped_type> value_type; +@@ -736,10 +748,9 @@ + _LIBCPP_INLINE_VISIBILITY + __map_const_iterator(_TreeIterator __i) _NOEXCEPT : __i_(__i) {} + _LIBCPP_INLINE_VISIBILITY +- __map_const_iterator( +- __map_iterator __i) +- _NOEXCEPT +- : __i_(__i.__i_) {} ++ __map_const_iterator(__map_iterator< ++ typename _TreeIterator::__non_const_iterator> __i) _NOEXCEPT ++ : __i_(__i.__i_) {} + + _LIBCPP_INLINE_VISIBILITY + reference operator*() const {return __i_->__cc;} +@@ -829,7 +840,7 @@ + typedef typename __alloc_traits::const_pointer const_pointer; + typedef typename __alloc_traits::size_type size_type; + typedef typename __alloc_traits::difference_type difference_type; +- typedef __map_iterator iterator; ++ typedef __map_iterator iterator; + typedef __map_const_iterator const_iterator; + typedef _VSTD::reverse_iterator reverse_iterator; + typedef _VSTD::reverse_iterator const_reverse_iterator; Property changes on: head/devel/libxs/files/extra-patch-map ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property