[all-commits] [llvm/llvm-project] a4336f: [runtimes] Don't link against compiler-rt explicit...

Louis Dionne via All-commits all-commits at lists.llvm.org
Wed Dec 13 10:58:02 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a4336f2ec1747ea234a07d683930683f67fbd655
      https://github.com/llvm/llvm-project/commit/a4336f2ec1747ea234a07d683930683f67fbd655
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2023-12-13 (Wed, 13 Dec 2023)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/cmake/config-ix.cmake
    M libcxxabi/cmake/config-ix.cmake
    M libcxxabi/src/CMakeLists.txt
    M libunwind/cmake/config-ix.cmake

  Log Message:
  -----------
  [runtimes] Don't link against compiler-rt explicitly when we use -nostdlib++ (#75089)

When we use the -nostdlib++ flag, we don't need to explicitly link
against compiler-rt, since the compiler already links against it by
default. This simplifies the flags that we need to use when building
with Clang and GCC, and opens the door to further simplifications since
most platforms won't need to detect whether libgcc and libgcc_s are
supported anymore.

Furthermore, on platforms where -nostdlib++ is used, this patch prevents
manually linking compiler-rt *before* other system libraries. For
example, Apple platforms have several compiler-rt symbols defined in
libSystem.dylib. If we manually link against compiler-rt, we end up
overriding the default link order preferred by the compiler and
potentially using the symbols from the clang-provided libclang_rt.a
library instead of the system provided one.

Note that we don't touch how libunwind links against compiler-rt when it
builds the .so/.a because libunwind currently doesn't use -nodefaultlibs
and we want to avoid rocking the boat too much.

rdar://119506163




More information about the All-commits mailing list