| Summary: | shells/fish fails to build with Clang 6.0 | ||
|---|---|---|---|
| Product: | Ports & Packages | Reporter: | Alan Somers <asomers> |
| Component: | Individual Port(s) | Assignee: | Alan Somers <asomers> |
| Status: | Closed FIXED | ||
| Severity: | Affects Some People | CC: | dim |
| Priority: | --- | Keywords: | patch |
| Version: | Latest | ||
| Hardware: | Any | ||
| OS: | Any | ||
| Bug Depends on: | |||
| Bug Blocks: | 224669 | ||
Fix in code review at https://reviews.freebsd.org/D14058 A commit references this bug: Author: asomers Date: Sat Jan 27 18:06:19 UTC 2018 New revision: 460135 URL: https://svnweb.freebsd.org/changeset/ports/460135 Log: shells/fish: fix the build with Clang-6.0 Clang-6.0 on FreeBSD 12 doesn't define __cpp_lib_make_unique. Patch fish to key off of the value of __cplusplus instead. PR: 225456 Reported by: pkg-fallout Reviewed by: jbeich, dim Differential Revision: https://reviews.freebsd.org/D14058 Changes: head/shells/fish/files/patch-src_common.h |
The Clang 6 upgrade in FreeBSD head has broken shells/fish. It fails with errors like this: src/builtin_test.cpp:281:20: error: call to 'make_unique' is ambiguous return make_unique<unary_operator>(tok, range_t(start, subject->range.end), ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/memory:3076:1: note: candidate function [with _Tp = test_expressions::unary_operator, _Args = <test_expressions::token_t &, test_expressions::range_t, std::__1::unique_ptr<test_expressions::expression, std::__1::default_delete<test_expressions::expression> >>] make_unique(_Args&&... __args) The problem is that Clang isn't defining the feature test macro __cpp_lib_make_unique. I can fix the build by simply replacing references to that macro with 1, but I'm not sure that's the best thing to do.