[all-commits] [llvm/llvm-project] 7ac1f6: [llvm-libgcc][CMake] Refactor llvm-libgcc (#65455)
ur4t via All-commits
all-commits at lists.llvm.org
Mon Sep 18 22:56:17 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7ac1f60f01a73f9678bba2385e933864ecce8622
https://github.com/llvm/llvm-project/commit/7ac1f60f01a73f9678bba2385e933864ecce8622
Author: ur4t <46435411+ur4t at users.noreply.github.com>
Date: 2023-09-18 (Mon, 18 Sep 2023)
Changed paths:
M llvm-libgcc/CMakeLists.txt
A llvm-libgcc/gcc_s.ver.in
R llvm-libgcc/lib/CMakeLists.txt
R llvm-libgcc/lib/blank.c
R llvm-libgcc/lib/gcc_s.ver
M runtimes/CMakeLists.txt
Log Message:
-----------
[llvm-libgcc][CMake] Refactor llvm-libgcc (#65455)
There are some issues in `llvm-libgcc` before this patch:
Commit c5a20b518203613497fa864867fc232648006068 ([llvm-libgcc] initial
commit)
uses `$<TARGET_OBJECTS:unwind_static>` to get libunwind objects, which
is empty.
The built library is actually a shared version of libclang_rt.builtins.
When configuring with `llvm/CMakeLists.txt`, target `llvm-libgcc`
requires a
corresponding target in `llvm-libgcc/CMakeLists.txt`.
Per target installation is not handled by `llvm-libgcc`, which is not
consistent
with `libunwind`.
This patch fixes those issues by:
Reusing target `unwind_shared` in `libunwind`, linking
`compiler-rt.builtins`
objects into it, and applying version script.
Adding target `llvm-libgcc`, creating symlinks, and utilizing cmake's
dependency
and component mechanism to ensure link targets will be built and
installed along
with symlinks.
Mimicking `libunwind` to handle per target installation.
It is quite hard to set necessary options without further modifying the
order of
runtime projects in `runtimes/CMakeLists.txt`. So though this patch
reveals the
possibility of co-existence of `llvm-libgcc` and
`compiler-rt`/`libunwind` in
`LLVM_ENABLE_RUNTIMES`, we still inhibit it to minimize influence on
other
projects, considering that `llvm-libgcc` is only intended for toolchain
vendors,
and not for casual use.
More information about the All-commits
mailing list