aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyndy Ishida <cyndy_ishida@apple.com>2024-04-07 10:22:34 -0700
committerGitHub <noreply@github.com>2024-04-07 10:22:34 -0700
commita3bb9c2b06666e2f4eb005179ca7eef3313b6be5 (patch)
treee75f187964629fdf3e206ea0029497138910e8ee
parent10b1864dff816174cd83fb2d3bc622e25fcf0f8a (diff)
downloadllvm-a3bb9c2b06666e2f4eb005179ca7eef3313b6be5.zip
llvm-a3bb9c2b06666e2f4eb005179ca7eef3313b6be5.tar.gz
llvm-a3bb9c2b06666e2f4eb005179ca7eef3313b6be5.tar.bz2
[cmake] Prevent implicitly passing `-no_exported_symbols` (#87846)
* It is possible to setup llvm-project builds without going through `llvm/CMakeList.txt` so the fatal error handling should be smarter. * Disable option on Apple style lldb-linux builds.
-rw-r--r--lldb/cmake/caches/Apple-lldb-Linux.cmake1
-rw-r--r--llvm/cmake/modules/AddLLVM.cmake8
2 files changed, 8 insertions, 1 deletions
diff --git a/lldb/cmake/caches/Apple-lldb-Linux.cmake b/lldb/cmake/caches/Apple-lldb-Linux.cmake
index b2d3cf5..9258f01 100644
--- a/lldb/cmake/caches/Apple-lldb-Linux.cmake
+++ b/lldb/cmake/caches/Apple-lldb-Linux.cmake
@@ -1,4 +1,5 @@
include(${CMAKE_CURRENT_LIST_DIR}/Apple-lldb-base.cmake)
+set(LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES ON CACHE BOOL "")
set(LLVM_DISTRIBUTION_COMPONENTS
lldb
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 81398dd..693fd56 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1038,9 +1038,15 @@ macro(add_llvm_executable name)
add_llvm_symbol_exports( ${name} ${LLVM_EXPORTED_SYMBOL_FILE} )
endif(LLVM_EXPORTED_SYMBOL_FILE)
- if (NOT LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES AND LLVM_LINKER_SUPPORTS_NO_EXPORTED_SYMBOLS)
+ if (DEFINED LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES AND
+ NOT LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES)
+ if(LLVM_LINKER_SUPPORTS_NO_EXPORTED_SYMBOLS)
set_property(TARGET ${name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-no_exported_symbols")
+ else()
+ message(FATAL_ERROR
+ "LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES cannot be disabled when linker does not support \"-no_exported_symbols\"")
+ endif()
endif()
if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)