]> git.proxmox.com Git - rustc.git/blobdiff - src/compiler-rt/cmake/Modules/SanitizerUtils.cmake
New upstream version 1.19.0+dfsg1
[rustc.git] / src / compiler-rt / cmake / Modules / SanitizerUtils.cmake
index c66083c24f479c7808608dbde7cb090be8e55454..c80fc3b1eefc226b202af7d0ec42c41342554629 100644 (file)
@@ -46,6 +46,17 @@ macro(add_sanitizer_rt_symbols name)
   endforeach()
 endmacro()
 
+# This function is only used on Darwin, where undefined symbols must be specified
+# in the linker invocation.
+function(add_weak_symbols libname link_flags)
+  file(STRINGS "${COMPILER_RT_SOURCE_DIR}/lib/${libname}/weak_symbols.txt" WEAK_SYMBOLS)
+  set(local_link_flags ${${link_flags}})
+  foreach(SYMBOL ${WEAK_SYMBOLS})
+    set(local_link_flags ${local_link_flags} -Wl,-U,${SYMBOL})
+  endforeach()
+  set(${link_flags} ${local_link_flags} PARENT_SCOPE)
+endfunction()
+
 macro(add_sanitizer_rt_version_list name)
   set(vers ${CMAKE_CURRENT_BINARY_DIR}/${name}.vers)
   cmake_parse_arguments(ARG "" "" "LIBS;EXTRA" ${ARGN})