Skip to content

libcxx 13 compatibility #32018

@Algunenano

Description

@Algunenano

Currently it's impossible to build ClickHouse with libcxx 13, which happens to be the standard library bundled with the recommended compiler. It's understood that you should use the provided one, but at some point that will be updated too so since I had some issues I decided to give it a try and see what break.

Tested with local libc++ (from llvm 13.0.0):

CC=clang CXX=clang++ cmake .. -DUSE_INTERNAL_LIBCXX_LIBRARY=False -DDISABLE_HERMETIC_BUILD=ON

The problems come from internal dependencies that are using result_of. This was deprecated in C++17, removed in C++20 and dropped from libc++ in v13.

IMO the actions points would be:

  • Push lts_2021_03_24 branch to ClickHouse-Extras/abseil-cpp or change remote to upstream.
  • Push apache-arrow-6.0.1 branch to ClickHouse-Extras/arrow. Add a commit to remote submodules (if we want it).
  • Get arrow to link and work with 6.0.1. Should require only changes here.
  • Update ClickHouse-Extras/s2 to a version with off tree abseil.
  • Get S2 to build with contrib/abseil.
  • Either update boost to a newer version (like 1.76 + ASIO patch) or apply all 3 patches individually.

I'll try to get this done locally as long as nobody says it shouldn't be done or something but, when it all works, I'll need help pushing new branches / patches into the submodules.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions