[clang] [lldb] [llvm] [cmake] Build executables with -no_exported_symbols when building Apple toolchain (PR #87684)

Cyndy Ishida via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 5 15:06:36 PDT 2024


================
@@ -1029,6 +1038,16 @@ 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) 
+    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\"")
----------------
cyndyishida wrote:

Yea, theres more platform-friendly and older ways to achieve the same thing. I opted not to because AFAIK, our toolchain only builds with linkers that support the straightforward flag, and wasn't sure how useful this would be for other platforms. 

https://github.com/llvm/llvm-project/pull/87684


More information about the cfe-commits mailing list