diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake b/clang/cmake/caches/Fuchsia-stage2.cmake --- a/clang/cmake/caches/Fuchsia-stage2.cmake +++ b/clang/cmake/caches/Fuchsia-stage2.cmake @@ -142,12 +142,22 @@ set(RUNTIMES_${target}-fuchsia_LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY OFF CACHE BOOL "") set(RUNTIMES_${target}-fuchsia_LIBCXX_ABI_VERSION 2 CACHE STRING "") + set(RUNTIMES_${target}-fuchsia+asan_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia+asan_LLVM_USE_SANITIZER "Address" CACHE STRING "") + set(RUNTIMES_${target}-fuchsia+asan_LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia+asan_LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") + + set(RUNTIMES_${target}-fuchsia+noexcept_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia+noexcept_LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "") + set(RUNTIMES_${target}-fuchsia+noexcept_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") + # Use .build-id link. list(APPEND RUNTIME_BUILD_ID_LINK "${target}-fuchsia") endforeach() - set(LLVM_RUNTIME_SANITIZERS "Address" CACHE STRING "") - set(LLVM_RUNTIME_SANITIZER_Address_TARGETS "x86_64-fuchsia;aarch64-fuchsia" CACHE STRING "") + set(LLVM_RUNTIME_MULTILIBS "asan;noexcept" CACHE STRING "") + set(LLVM_RUNTIME_MULTILIB_asan_TARGETS "x86_64-fuchsia;aarch64-fuchsia" CACHE STRING "") + set(LLVM_RUNTIME_MULTILIB_noexcept_TARGETS "x86_64-fuchsia;aarch64-fuchsia" CACHE STRING "") endif() set(LLVM_BUILTIN_TARGETS "${BUILTIN_TARGETS}" CACHE STRING "") diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -70,7 +70,9 @@ get_compiler_rt_path(compiler_rt_path) if(compiler_rt_path) list(REMOVE_ITEM runtimes ${compiler_rt_path}) - if(NOT LLVM_BUILD_COMPILER_RT) + message("XYZ BUILD_COMPILER_RT?") + if(NOT DEFINED LLVM_BUILD_COMPILER_RT OR LLVM_BUILD_COMPILER_RT) + message("XYZ BUILD_COMPILER_RT!") list(INSERT runtimes 0 ${compiler_rt_path}) endif() endif() @@ -242,7 +244,8 @@ get_cmake_property(variableNames VARIABLES) foreach(variableName ${variableNames}) - if(variableName MATCHES "^BUILTINS_${target}") + string(FIND "${variableName}" "BUILTINS_${target}" out) + if("${out}" EQUAL 0) string(REPLACE "BUILTINS_${target}_" "" new_name ${variableName}) list(APPEND ${target}_extra_args "-D${new_name}=${${variableName}}") endif() @@ -425,10 +428,13 @@ get_cmake_property(variableNames VARIABLES) foreach(variableName ${variableNames}) - if(variableName MATCHES "^RUNTIMES_${name}") + string(FIND "${variableName}" "RUNTIMES_${name}" out) + if("${out}" EQUAL 0) string(REPLACE "RUNTIMES_${name}_" "" new_name ${variableName}) list(APPEND ${name}_extra_args "-D${new_name}=${${variableName}}") - elseif(variableName MATCHES "^RUNTIMES_${target}") + endif() + string(FIND "${variableName}" "RUNTIMES_${target}" out) + if("${out}" EQUAL 0) string(REPLACE "RUNTIMES_${target}_" "" new_name ${variableName}) list(APPEND ${name}_extra_args "-D${new_name}=${${variableName}}") endif() @@ -510,28 +516,16 @@ endif() endforeach() - foreach(sanitizer ${LLVM_RUNTIME_SANITIZERS}) - if (sanitizer STREQUAL "Address") - set(sanitizer_name "asan") - elseif (sanitizer STREQUAL "Memory") - set(sanitizer_name "msan") - elseif (sanitizer STREQUAL "Thread") - set(sanitizer_name "tsan") - elseif (sanitizer STREQUAL "Undefined") - set(sanitizer_name "ubsan") - else() - message(FATAL_ERROR "Unsupported value of LLVM_RUNTIME_TARGET_SANITIZERS: ${sanitizers}") - endif() - foreach(name ${LLVM_RUNTIME_SANITIZER_${sanitizer}_TARGETS}) - runtime_register_target(${name}-${sanitizer_name} ${name} + foreach(multilib ${LLVM_RUNTIME_MULTILIBS}) + foreach(name ${LLVM_RUNTIME_MULTILIB_${multilib}_TARGETS}) + runtime_register_target(${name}+${multilib} ${name} DEPENDS runtimes-${name} - CMAKE_ARGS -DLLVM_USE_SANITIZER=${sanitizer} - -DLLVM_RUNTIMES_PREFIX=${name}/ - -DLLVM_RUNTIMES_LIBDIR_SUFFIX=/${sanitizer_name}) - add_dependencies(runtimes runtimes-${name}-${sanitizer_name}) - add_dependencies(runtimes-configure runtimes-${name}-${sanitizer_name}-configure) - add_dependencies(install-runtimes install-runtimes-${name}-${sanitizer_name}) - add_dependencies(install-runtimes-stripped install-runtimes-${name}-${sanitizer_name}-stripped) + CMAKE_ARGS -DLLVM_RUNTIMES_PREFIX=${name}/ + -DLLVM_RUNTIMES_LIBDIR_SUFFIX=/${multilib}) + add_dependencies(runtimes runtimes-${name}+${multilib}) + add_dependencies(runtimes-configure runtimes-${name}+${multilib}-configure) + add_dependencies(install-runtimes install-runtimes-${name}+${multilib}) + add_dependencies(install-runtimes-stripped install-runtimes-${name}+${multilib}-stripped) endforeach() endforeach() endif()