Skip to content

Commit

Permalink
[libc++] Build the dylib with sanitizers when requested (#73656)
Browse files Browse the repository at this point in the history
We were detecting which sanitizer flags to use when building
libc++.dylib but we were never actually adding those flags to the
targets, which means that our sanitized builds would basically build the
dylib without any sanitizers enabled.
  • Loading branch information
ldionne committed Nov 29, 2023
1 parent 68433f6 commit fa712b0
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions libcxx/CMakeLists.txt
Expand Up @@ -621,10 +621,10 @@ function(get_sanitizer_flags OUT_VAR USE_SANITIZER)
append_flags(SANITIZER_FLAGS "-fsanitize-memory-track-origins")
endif()
elseif (USE_SANITIZER STREQUAL "Undefined")
append_flags(SANITIZER_FLAGS "-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all")
append_flags(SANITIZER_FLAGS "-fsanitize=undefined" "-fno-sanitize=vptr,function" "-fno-sanitize-recover=all")
elseif (USE_SANITIZER STREQUAL "Address;Undefined" OR
USE_SANITIZER STREQUAL "Undefined;Address")
append_flags(SANITIZER_FLAGS "-fsanitize=address,undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all")
append_flags(SANITIZER_FLAGS "-fsanitize=address,undefined" "-fno-sanitize=vptr,function" "-fno-sanitize-recover=all")
elseif (USE_SANITIZER STREQUAL "Thread")
append_flags(SANITIZER_FLAGS -fsanitize=thread)
elseif (USE_SANITIZER STREQUAL "DataFlow")
Expand All @@ -639,6 +639,8 @@ function(get_sanitizer_flags OUT_VAR USE_SANITIZER)
endfunction()

get_sanitizer_flags(SANITIZER_FLAGS "${LLVM_USE_SANITIZER}")
add_library(cxx-sanitizer-flags INTERFACE)
target_compile_options(cxx-sanitizer-flags INTERFACE ${SANITIZER_FLAGS})

# Link system libraries =======================================================
function(cxx_link_system_libraries target)
Expand Down Expand Up @@ -821,6 +823,7 @@ function(cxx_add_common_build_flags target)
cxx_add_rtti_flags(${target})
cxx_add_module_flags(${target})
cxx_link_system_libraries(${target})
target_link_libraries(${target} PRIVATE cxx-sanitizer-flags)
endfunction()

#===============================================================================
Expand Down

0 comments on commit fa712b0

Please sign in to comment.