[all-commits] [llvm/llvm-project] fc0474: [lldb] Fix detection of existing libcxx

Felipe de Azevedo Piovezan via All-commits all-commits at lists.llvm.org
Mon Sep 12 09:34:46 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fc04749957f17f42b1eab538fa3e68857034facb
      https://github.com/llvm/llvm-project/commit/fc04749957f17f42b1eab538fa3e68857034facb
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2022-09-12 (Mon, 12 Sep 2022)

  Changed paths:
    M lldb/test/API/lit.cfg.py
    M lldb/test/API/lit.site.cfg.py.in

  Log Message:
  -----------
  [lldb] Fix detection of existing libcxx

The CMake variable LLDB_HAS_LIBCXX is passed to
`llvm_canonicalize_cmake_booleans`, which transforms TRUE/FALSE into
'1'/'0'. It also transforms undefined variables to '0'.

In particular, this means that the configuration script for LLDB API's
test always has _some_ value for the `has_libcxx` configuration:

```
config.has_libcxx = '@LLDB_HAS_LIBCXX@'
```

When deciding whether a libcxx exist, the testing scripts would only
check for the existence of `has_libcxx`, but not for its value. In other
words, because `if ('0')` is true in python we always think there is a
libcxx.

This was caught once D132940 was merged and most tests started to use
libcxx by default if `has_libcxx` is true.  Prior to that, no failures
were seen because only tests are marked with
`@add_test_categories(["libc++"])` would require a libcxx, and these
would be filtered out on builds without the libcxx target. Furthermore,
the MacOS bots always build libcxx.

We fix this by making `has_libcxx` a boolean (instead of a string) and
by checking its value in the test configuration.

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




More information about the All-commits mailing list