Bug 218898

Summary: databases/clickhouse: fails to build with libc++ 4.0
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Only Me CC: iron.udjin, proler
Priority: --- Keywords: needs-patch, regression
Version: LatestFlags: bugzilla: maintainer-feedback? (proler)
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 218666    

Description Jan Beich freebsd_committer freebsd_triage 2017-04-26 18:34:10 UTC
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:306:32: error: no matching member function for call to 'ignore'
            if (special_open_p.ignore(pos, end))
                ~~~~~~~~~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:308:25: error: no matching member function for call to 'ignore'
                if (t_p.ignore(pos, end))
                    ~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:312:41: error: no matching member function for call to 'ignore'
                    if (less_or_equal_p.ignore(pos, end))
                        ~~~~~~~~~~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:314:37: error: no matching member function for call to 'ignore'
                    else if (less_p.ignore(pos, end))
                             ~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:316:49: error: no matching member function for call to 'ignore'
                    else if (greater_or_equal_p.ignore(pos, end))
                             ~~~~~~~~~~~~~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:318:40: error: no matching member function for call to 'ignore'
                    else if (greater_p.ignore(pos, end))
                             ~~~~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:323:41: error: non-const lvalue reference to type 'Pos' (aka 'const char *') cannot bind to a value of unrelated type 'char *'
                    if (!number_p.parse(pos, end, node, max_parsed_pos, expected))
                                        ^~~
dbms/src/Parsers/IParserBase.h:14:22: note: passing argument to parameter 'pos' here
    bool parse(Pos & pos, Pos end, ASTPtr & node, Pos & max_parsed_pos, Expected & expected);
                     ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:336:41: error: non-const lvalue reference to type 'Pos' (aka 'const char *') cannot bind to a value of unrelated type 'char *'
                else if (number_p.parse(pos, end, node, max_parsed_pos, expected))
                                        ^~~
dbms/src/Parsers/IParserBase.h:14:22: note: passing argument to parameter 'pos' here
    bool parse(Pos & pos, Pos end, ASTPtr & node, Pos & max_parsed_pos, Expected & expected);
                     ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:350:38: error: no matching member function for call to 'ignore'
                if (!special_close_p.ignore(pos, end))
                     ~~~~~~~~~~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:354:36: error: no matching member function for call to 'ignore'
            else if (dot_closure_p.ignore(pos, end))
                     ~~~~~~~~~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^
In file included from dbms/src/AggregateFunctions/AggregateFunctionsSequenceMatch.cpp:2:
dbms/src/AggregateFunctions/AggregateFunctionSequenceMatch.h:356:28: error: no matching member function for call to 'ignore'
            else if (dot_p.ignore(pos, end))
                     ~~~~~~^~~~~~
dbms/src/Parsers/IParser.h:43:10: note: candidate function not viable: no known conversion from 'char *' to 'Pos &' (aka 'const char *&') for 1st argument
    bool ignore(Pos & pos, Pos end)
         ^
dbms/src/Parsers/IParser.h:37:10: note: candidate function not viable: requires 4 arguments, but 2 were provided
    bool ignore(Pos & pos, Pos end, Pos & max_parsed_pos, Expected & expected)
         ^

before: http://www.ipv6proxy.net/go.php?u=http://beefy12.nyi.freebsd.org/data/head-amd64-default/p439347_s317390/logs/clickhouse-1.1.54165_1.log
after: http://sprunge.us/CcBf
Comment 1 Jan Beich freebsd_committer freebsd_triage 2017-04-26 18:50:45 UTC
11.0 amd64 + llvm40 doesn't build[1], so you may want to bisect libc++ commits e.g., via -nostdinc++ -isystem /path/to/libcxx/include If in doubt ask toolchain@ folks.

[1] http://sprunge.us/bfaW
Comment 2 Jan Beich freebsd_committer freebsd_triage 2017-04-26 18:52:18 UTC
(In reply to Jan Beich from comment #1)
> doesn't build

Err, builds fine. ;)
Comment 3 iron.udjin 2017-04-27 21:29:45 UTC
I've got exactly the same problem. I'm running 11.0-STABLE r317073 with Clang 4.0. Previous version clickhouse-1.1.54165_1 builds fine. 1.1.54214 version failes to build.
Comment 4 proler 2017-05-05 15:03:43 UTC
Fixed in clickhouse/master.
Comment 5 proler 2017-09-18 18:08:14 UTC
should be fixed with https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221690
Comment 6 Jan Beich freebsd_committer freebsd_triage 2017-10-06 17:55:19 UTC
I confirm, the port builds fine on FreeBSD 11.1-RELEASE amd64 which has Clang/libc++ 4.0.