[all-commits] [llvm/llvm-project] 8f90e6: [runtimes] Use LLVM libunwind from libc++abi by de...

Louis Dionne via All-commits all-commits at lists.llvm.org
Thu Jan 11 07:13:35 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8f90e6937a1fac80873bb2dab5f382c82ba1ba4e
      https://github.com/llvm/llvm-project/commit/8f90e6937a1fac80873bb2dab5f382c82ba1ba4e
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-01-11 (Thu, 11 Jan 2024)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml
    M libcxx/CMakeLists.txt
    M libcxx/cmake/caches/AArch64.cmake
    M libcxx/cmake/caches/AIX.cmake
    M libcxx/cmake/caches/AndroidNDK.cmake
    M libcxx/cmake/caches/Apple.cmake
    M libcxx/cmake/caches/Armv7Arm.cmake
    M libcxx/cmake/caches/Armv7M-picolibc.cmake
    M libcxx/cmake/caches/Armv7Thumb-no-exceptions.cmake
    M libcxx/cmake/caches/Armv8Arm.cmake
    M libcxx/cmake/caches/Armv8Thumb-no-exceptions.cmake
    M libcxx/cmake/caches/Generic-merged.cmake
    M libcxx/cmake/caches/Generic-msan.cmake
    M libcxx/cmake/caches/Generic-tsan.cmake
    M libcxx/cmake/caches/MinGW.cmake
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/ReleaseNotes/18.rst
    M libcxx/utils/ci/run-buildbot
    M libcxxabi/CMakeLists.txt

  Log Message:
  -----------
  [runtimes] Use LLVM libunwind from libc++abi by default (#77687)

I recently came across LIBCXXABI_USE_LLVM_UNWINDER and was surprised to
notice it was disabled by default. Since we build libunwind by default
and ship it in the LLVM toolchain, it would seem to make sense that
libc++ and libc++abi rely on libunwind for unwinding instead of using
the system-provided unwinding library (if any).

Most importantly, using the system unwinder implies that libc++abi is
ABI compatible with that system unwinder, which is not necessarily the
case. Hence, it makes a lot more sense to instead default to using the
known-to-be-compatible LLVM unwinder, and let vendors manually select a
different unwinder if desired.

As a follow-up change, we should probably apply the same default to
compiler-rt.

Differential Revision: https://reviews.llvm.org/D150897
Fixes #77662
rdar://120801778




More information about the All-commits mailing list