Bug 216177 - net-im/ring-daemon: fails to build with libc++ 4.0 (2 ports skipped)
Summary: net-im/ring-daemon: fails to build with libc++ 4.0 (2 ports skipped)
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: freebsd-ports-bugs (Nobody)
URL:
Keywords: needs-patch
Depends on:
Blocks: 216008
  Show dependency treegraph
 
Reported: 2017-01-17 11:47 UTC by Jan Beich
Modified: 2017-02-02 08:57 UTC (History)
2 users (show)

See Also:
yuri: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer freebsd_triage 2017-01-17 11:47:17 UTC
sipaccount.cpp:1589:16: error: use of overloaded operator '=' is ambiguous (with operand types 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char> >') and 'void')
    password_h = {hash, 32};
    ~~~~~~~~~~ ^ ~~~~~~~~~~
/usr/include/c++/v1/string:820:19: note: candidate function
    basic_string& operator=(const basic_string& __str);
                  ^
/usr/include/c++/v1/string:822:19: note: candidate function
    basic_string& operator=(__self_view __sv)  {return assign(__sv);}
                  ^
/usr/include/c++/v1/string:825:19: note: candidate function
    basic_string& operator=(basic_string&& __str)
                  ^
sipaccount.cpp:1653:21: error: use of overloaded operator '=' is ambiguous (with operand types 'std::string' (aka 'basic_string<char, char_traits<char>, allocator<char> >') and 'void')
        details_str = {description->ptr, (size_t)description->slen};
        ~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/string:820:19: note: candidate function
    basic_string& operator=(const basic_string& __str);
                  ^
/usr/include/c++/v1/string:822:19: note: candidate function
    basic_string& operator=(__self_view __sv)  {return assign(__sv);}
                  ^
/usr/include/c++/v1/string:825:19: note: candidate function
    basic_string& operator=(basic_string&& __str)
                  ^

build log: http://sprunge.us/GGZf
regressed by: https://github.com/llvm-mirror/libcxx/commit/1e00d6db319a
Comment 1 Eric Fiselier 2017-01-17 12:05:28 UTC
This is libc++'s fault, since we shouldn't expose `string_view` before C++17. However due to the fundamental dependencies between `string` and `string_view`  we explicitly chose to enable it in all dialects.
Comment 2 Yuri Victorovich freebsd_committer freebsd_triage 2017-01-17 21:44:48 UTC
If possible, could you please add a patch to make it build?

Otherwise, Ring ports are currently broken due to the upstream version mismatch that needs to be sorted out. (Upstream released some parts depending on unreleased versions of other parts.)
Comment 3 Eric Fiselier 2017-01-17 22:10:14 UTC
Yes. I think I can fix this in libc++. I will work on a patch today and then merge it into 4.0.