[all-commits] [llvm/llvm-project] 1e46d1: [libc++] Include <__config_site> from <__config>

Louis Dionne via All-commits all-commits at lists.llvm.org
Wed Oct 21 05:47:18 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 1e46d1aa3f9b618e8db32af5c855fbc386a950aa
      https://github.com/llvm/llvm-project/commit/1e46d1aa3f9b618e8db32af5c855fbc386a950aa
  Author: Louis Dionne <ldionne at apple.com>
  Date:   2020-10-21 (Wed, 21 Oct 2020)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/docs/TestingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__config
    M libcxx/test/configs/legacy.cfg.in
    M libcxx/utils/libcxx/test/config.py
    M libcxxabi/src/CMakeLists.txt

  Log Message:
  -----------
  [libc++] Include <__config_site> from <__config>

Prior to this patch, we would generate a fancy <__config> header by
concatenating <__config_site> and <__config>. This complexifies the
build system and also increases the difference between what's tested
and what's actually installed.

This patch removes that complexity and instead simply installs <__config_site>
alongside the libc++ headers. <__config_site> is then included by <__config>,
which is much simpler. Doing this also opens the door to having different
<__config_site> headers depending on the target, which was impossible before.

It does change the workflow for testing header-only changes to libc++.
Previously, we would run `lit` against the headers in libcxx/include.
After this patch, we run it against a fake installation root of the
headers (containing a proper <__config_site> header). This makes use
closer to testing what we actually install, which is good, however it
does mean that we have to update that root before testing header changes.
Thus, we now need to run `ninja check-cxx-deps` before running `lit` by
hand.

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




More information about the All-commits mailing list