[all-commits] [llvm/llvm-project] a9ddb7: [libc++][CI] Prepares building C++ modules.

Mark de Wever via All-commits all-commits at lists.llvm.org
Tue Apr 11 09:43:12 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a9ddb772453316c7cc792d9f8518cb85fabc131e
      https://github.com/llvm/llvm-project/commit/a9ddb772453316c7cc792d9f8518cb85fabc131e
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M libcxx/utils/ci/Dockerfile

  Log Message:
  -----------
  [libc++][CI] Prepares building C++ modules.

D144994 adds modules to libc++. In order to test them some newer and
additional tools are required.

CMake 3.26
This is in combination with Clang 16 or newer makes it possible to
conveniently build modules with CMake. Unfortunately CMake 3.26 in our
setup has an issue with unused linker flags. This causes libunwind not
to compile at all. D145596 contains a quick-fix which is in the module
patch. The patch D142957 and followups will contain a proper fix.
Therefore install CMake 3.26 in a separate location, allowing to test
the module patch in the CI.

Ninja 1.11
Building modules requires dynamic rules, which requires this version.
This is a CMake 3.26 requirement to use modules. Note that without using
modules CMake still accepts older Ninja versions.

clang-scan-deps (in the tools package)
This tool is used by CMake to get the module dependencies. Note
strictly this currently will only be used for Clang 16 and Clang 17.
Clang 15 and Clang 14 are not needed. They are installed to keep
updating to Clang 18 and later easier.
(In the future we might not test modular build with all Clang versions,
however at the moment the feature is still in development in both Clang
and libc++ so it would be good to detect regressions.)

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D146822




More information about the All-commits mailing list