summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-01-04 17:33:29 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2022-01-04 17:34:44 +0000
commit587bdb3772333763dd739021cd08bc44bcd8485d (patch)
tree97dc884bfbb9be58bce81f8c275c93d734bf1926
parente24ddb6027b6495a81c95133cfb6812d6090cd32 (diff)
downloadllvm-587bdb3772333763dd739021cd08bc44bcd8485d.tar.gz
[llvm][cmake] never link llvm-config against llvm dylib
When cross-compiling, in order to make the output of the native and cross-compiled llvm-config match, one needs to re-pass all cmake flags relevant to BuildVariables.inc via `CROSS_TOOLCHAIN_FLAGS_NATIVE`. If `LLVM_LINK_LLVM_DYLIB=ON` is among those, building a full `libLLVM` shared object is required for the native llvm-config, otherwise `--shared-mode` will be incorrect and `--link-shared` broken. To avoid this, we can make llvm-config link statically against the needed components for simplicity's sake in both the native and cross case. Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D116537
-rw-r--r--llvm/tools/llvm-config/CMakeLists.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/tools/llvm-config/CMakeLists.txt b/llvm/tools/llvm-config/CMakeLists.txt
index 1b74355a4209..aa5aa20257f9 100644
--- a/llvm/tools/llvm-config/CMakeLists.txt
+++ b/llvm/tools/llvm-config/CMakeLists.txt
@@ -6,6 +6,12 @@ set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc)
# Add the llvm-config tool.
add_llvm_tool(llvm-config
llvm-config.cpp
+ # This utility doesn't use much of LLVM, so linking a shared library for the
+ # entire thing is overkill. Avoiding that especially saves on build time when cross
+ # compiling LLVM and building both cross and native `llvm-config`s. We don't
+ # want to build an entire native libLLVM.so in addition to the cross one just
+ # for the native `llvm-config`!
+ DISABLE_LLVM_LINK_LLVM_DYLIB
)
# Compute the substitution values for various items.