Bug 230624 - net/mosh: fails to build with libc++ 7
Summary: net/mosh: fails to build with libc++ 7
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Ryan Steinmetz
URL:
Keywords: needs-patch
Depends on:
Blocks: 230355
  Show dependency treegraph
 
Reported: 2018-08-14 19:18 UTC by Jan Beich
Modified: 2018-08-16 16:50 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (zi)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer 2018-08-14 19:18:01 UTC
$ poudriere jail -cj clang7 -a amd64 -v projects/clang700-import -m svn+https
$ poudriere testport -j clang7 net/mosh
[...]
network.cc:338:57: error: invalid operands to binary expression ('__bind<int, sockaddr *, unsigned int &>' and 'int')
    if ( bind( sock(), &local_addr.sa, local_addr_len ) == 0 ) {
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~
/usr/include/c++/v1/utility:558:1: note: candidate template ignored: could not match 'pair' against '__bind'
operator==(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
^
/usr/include/c++/v1/iterator:694:1: note: candidate template ignored: could not match 'reverse_iterator' against '__bind'
operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
^
/usr/include/c++/v1/iterator:923:1: note: candidate template ignored: could not match 'istream_iterator' against '__bind'
operator==(const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __x,
^
/usr/include/c++/v1/iterator:1027:6: note: candidate template ignored: could not match 'istreambuf_iterator' against '__bind'
bool operator==(const istreambuf_iterator<_CharT,_Traits>& __a,
     ^
/usr/include/c++/v1/iterator:1135:1: note: candidate template ignored: could not match 'move_iterator' against '__bind'
operator==(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)
^
/usr/include/c++/v1/iterator:1433:5: note: candidate template ignored: could not match '__wrap_iter' against '__bind'
    operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;
    ^
/usr/include/c++/v1/tuple:1139:1: note: candidate template ignored: could not match 'tuple' against '__bind'
operator==(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)
^
/usr/include/c++/v1/memory:1972:6: note: candidate template ignored: could not match 'allocator' against '__bind'
bool operator==(const allocator<_Tp>&, const allocator<_Up>&) _NOEXCEPT {return true;}
     ^
/usr/include/c++/v1/memory:2946:1: note: candidate template ignored: could not match 'unique_ptr' against '__bind'
operator==(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return __x.get() == __y.get();}
^
/usr/include/c++/v1/memory:2982:1: note: candidate template ignored: could not match 'unique_ptr' against '__bind'
operator==(const unique_ptr<_T1, _D1>& __x, nullptr_t) _NOEXCEPT
^
/usr/include/c++/v1/memory:2990:1: note: candidate template ignored: could not match 'unique_ptr<type-parameter-0-0, type-parameter-0-1>' against 'int'
operator==(nullptr_t, const unique_ptr<_T1, _D1>& __x) _NOEXCEPT
^
/usr/include/c++/v1/memory:4778:1: note: candidate template ignored: could not match 'shared_ptr' against '__bind'
operator==(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
^
/usr/include/c++/v1/memory:4832:1: note: candidate template ignored: could not match 'shared_ptr' against '__bind'
operator==(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
^
/usr/include/c++/v1/memory:4840:1: note: candidate template ignored: could not match 'shared_ptr<type-parameter-0-0>' against 'int'
operator==(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
^
/usr/include/c++/v1/functional:1952:1: note: candidate template ignored: could not match 'function' against '__bind'
operator==(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) _NOEXCEPT {return !__f;}
^
/usr/include/c++/v1/functional:1957:1: note: candidate template ignored: could not match 'function<type-parameter-0-0 (type-parameter-0-1...)>' against 'int'
operator==(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) _NOEXCEPT {return !__f;}
^
/usr/include/c++/v1/string_view:613:6: note: candidate template ignored: could not match 'basic_string_view' against '__bind'
bool operator==(basic_string_view<_CharT, _Traits> __lhs,
     ^
/usr/include/c++/v1/string_view:622:6: note: candidate template ignored: could not match 'basic_string_view' against '__bind'
bool operator==(basic_string_view<_CharT, _Traits> __lhs,
     ^
/usr/include/c++/v1/string_view:631:6: note: candidate template ignored: could not match 'basic_string_view<type-parameter-0-0, type-parameter-0-1>' against 'int'
bool operator==(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, 
     ^
/usr/include/c++/v1/string:558:6: note: candidate template ignored: could not match 'fpos' against '__bind'
bool operator==(const fpos<_StateT>& __x, const fpos<_StateT>& __y)
     ^
/usr/include/c++/v1/string:3792:1: note: candidate template ignored: could not match 'basic_string' against '__bind'
operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
^
/usr/include/c++/v1/string:3804:1: note: candidate template ignored: could not match 'basic_string' against '__bind'
operator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,
^
/usr/include/c++/v1/string:3823:1: note: candidate template ignored: could not match 'const _CharT *' against '__bind<int, sockaddr *, unsigned int &>'
operator==(const _CharT* __lhs,
^
/usr/include/c++/v1/string:3836:1: note: candidate template ignored: could not match 'basic_string' against '__bind'
operator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs,
^
/usr/include/c++/v1/deque:2874:1: note: candidate template ignored: could not match 'deque' against '__bind'
operator==(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)
^
/usr/include/c++/v1/vector:3340:1: note: candidate template ignored: could not match 'vector' against '__bind'
operator==(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)
^

http://package18.nyi.freebsd.org/data/headamd64PR230355-default/2018-08-11_19h01m06s/logs/errors/mosh-1.3.2_4.log
Comment 1 Jan Beich freebsd_committer 2018-08-14 19:18:15 UTC
C++11 strikes again after https://reviews.llvm.org/rL322019. See discussion in bug 224669 comment 13 (and later) for possible fixes.
Comment 2 Ryan Steinmetz freebsd_committer freebsd_triage 2018-08-14 20:17:33 UTC
Raised with mosh developers on IRC.
Comment 3 Ryan Steinmetz freebsd_committer freebsd_triage 2018-08-16 15:48:05 UTC
Fix committed upstream.

Evaluating https://github.com/mobile-shell/mosh/pull/996 for inclusion in the port.
Comment 4 cgull 2018-08-16 16:26:26 UTC
I've committed fixes on Mosh master.  Commit e5f8a82 should be sufficient to resolve this problem, though there are additional namespace-pollution cleanups after that as well.
Comment 5 commit-hook freebsd_committer 2018-08-16 16:50:32 UTC
A commit references this bug:

Author: zi
Date: Thu Aug 16 16:49:57 UTC 2018
New revision: 477363
URL: https://svnweb.freebsd.org/changeset/ports/477363

Log:
  - Fix build failure with libc++ 7

  PR:		230624
  Obtained from:	upstream commit e5f8a82

Changes:
  head/net/mosh/files/
  head/net/mosh/files/patch-src_network_network.cc