diff options
author | Cyndy Ishida <cyndy_ishida@apple.com> | 2024-04-07 10:22:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-07 10:22:34 -0700 |
commit | a3bb9c2b06666e2f4eb005179ca7eef3313b6be5 (patch) | |
tree | e75f187964629fdf3e206ea0029497138910e8ee | |
parent | 10b1864dff816174cd83fb2d3bc622e25fcf0f8a (diff) | |
download | llvm-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.cmake | 1 | ||||
-rw-r--r-- | llvm/cmake/modules/AddLLVM.cmake | 8 |
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) |