[compiler-rt] Make use of undefined symbols configurable
authorPetr Hosek <phosek@google.com>
Tue, 22 Jun 2021 18:03:37 +0000 (11:03 -0700)
committerPetr Hosek <phosek@google.com>
Tue, 22 Jun 2021 18:49:31 +0000 (11:49 -0700)
We want to disable the use of undefined symbols on Fuchsia, but there
are cases where it might be desirable so may it configurable.

Differential Revision: https://reviews.llvm.org/D104728

compiler-rt/CMakeLists.txt

index 5d0e617..24018ca 100644 (file)
@@ -437,10 +437,18 @@ else()
 endif()
 
 append_list_if(COMPILER_RT_HAS_LIBC c SANITIZER_COMMON_LINK_LIBS)
+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
+  list(APPEND SANITIZER_COMMON_LINK_LIBS zircon)
+endif()
 
 if("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
+  set(SANITIZER_NO_UNDEFINED_SYMBOLS_DEFAULT ON)
+else()
+  set(SANITIZER_NO_UNDEFINED_SYMBOLS_DEFAULT OFF)
+endif
+option(SANITIZER_NO_UNDEFINED_SYMBOLS ${SANITIZER_NO_UNDEFINED_SYMBOLS_DEFAULT})
+if (SANITIZER_NO_UNDEFINED_SYMBOLS)
   list(APPEND SANITIZER_COMMON_LINK_FLAGS -Wl,-z,defs)
-  list(APPEND SANITIZER_COMMON_LINK_LIBS zircon)
 endif()
 
 # TODO: COMPILER_RT_COMMON_CFLAGS and COMPILER_RT_COMMON_LINK_FLAGS are