brintos

brintos / llvm-project-archived public Read only

0
0
Text · 27.0 KiB · 9df14d4 Raw
524 lines · plain
1# This file sets up a CMakeCache for the second stage of a Fuchsia toolchain build.2 3option(FUCHSIA_ENABLE_LLDB "Enable LLDB")4 5set(LLVM_TARGETS_TO_BUILD X86;ARM;AArch64;RISCV CACHE STRING "")6 7set(PACKAGE_VENDOR Fuchsia CACHE STRING "")8 9set(_FUCHSIA_ENABLE_PROJECTS "bolt;clang;clang-tools-extra;lld;llvm;polly")10set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")11 12set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "")13set(LLVM_ENABLE_DIA_SDK OFF CACHE BOOL "")14set(LLVM_ENABLE_FATLTO ON CACHE BOOL "")15set(LLVM_ENABLE_HTTPLIB ON CACHE BOOL "")16set(LLVM_ENABLE_LIBCXX ON CACHE BOOL "")17set(LLVM_ENABLE_LIBEDIT OFF CACHE BOOL "")18set(LLVM_ENABLE_LLD ON CACHE BOOL "")19set(LLVM_ENABLE_LTO ON CACHE BOOL "")20set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")21set(LLVM_ENABLE_PLUGINS OFF CACHE BOOL "")22set(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "")23set(LLVM_ENABLE_Z3_SOLVER OFF CACHE BOOL "")24set(LLVM_ENABLE_ZLIB ON CACHE BOOL "")25set(LLVM_FORCE_BUILD_RUNTIME ON CACHE BOOL "")26set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")27set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")28set(LLVM_STATIC_LINK_CXX_STDLIB ON CACHE BOOL "")29set(LLVM_USE_RELATIVE_PATHS_IN_FILES ON CACHE BOOL "")30set(LLDB_ENABLE_CURSES OFF CACHE BOOL "")31set(LLDB_ENABLE_LIBEDIT OFF CACHE BOOL "")32 33if(WIN32)34  set(FUCHSIA_DISABLE_DRIVER_BUILD ON)35endif()36 37if (NOT FUCHSIA_DISABLE_DRIVER_BUILD)38  set(LLVM_TOOL_LLVM_DRIVER_BUILD ON CACHE BOOL "")39  set(LLVM_DRIVER_TARGET llvm-driver)40endif()41 42set(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "")43set(CLANG_DEFAULT_LINKER lld CACHE STRING "")44set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "")45set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "")46set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "")47set(CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "")48set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "")49 50set(ENABLE_LINKER_BUILD_ID ON CACHE BOOL "")51set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "")52 53# TODO(#67176): relative-vtables doesn't play well with different default54# visibilities. Making everything hidden visibility causes other complications55# let's choose default visibility for our entire toolchain.56set(CMAKE_C_VISIBILITY_PRESET default CACHE STRING "")57set(CMAKE_CXX_VISIBILITY_PRESET default CACHE STRING "")58 59set(CMAKE_BUILD_TYPE Release CACHE STRING "")60if (APPLE)61  set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "")62elseif(WIN32)63  set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "")64endif()65 66if(APPLE)67  list(APPEND BUILTIN_TARGETS "default")68  list(APPEND RUNTIME_TARGETS "default")69 70  set(COMPILER_RT_ENABLE_TVOS OFF CACHE BOOL "")71  set(COMPILER_RT_ENABLE_WATCHOS OFF CACHE BOOL "")72  set(COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")73 74  set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")75  set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")76  set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")77  set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "")78  set(LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")79  set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")80  set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")81  set(LIBCXX_ABI_VERSION 2 CACHE STRING "")82  set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")83  set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")84  set(LIBCXX_HARDENING_MODE "none" CACHE STRING "")85  set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")86  set(RUNTIMES_CMAKE_ARGS "-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0;-DCMAKE_OSX_ARCHITECTURES=arm64|x86_64" CACHE STRING "")87endif()88 89if(WIN32 OR LLVM_WINSYSROOT)90  if((NOT WIN32) AND (NOT LLVM_VFSOVERLAY))91    message(FATAL_ERROR "LLVM_VFSOVERLAY should be defined.")92  endif()93  set(target "x86_64-pc-windows-msvc")94 95  if (LLVM_WINSYSROOT)96    set(WINDOWS_COMPILER_FLAGS97      -Xclang98      -ivfsoverlay99      -Xclang100      ${LLVM_VFSOVERLAY}101      # TODO: /winsysroot should be set by HandleLLVMOptions.cmake automatically102      # but it current has a bug that prevents it from working under cross103      # compilation. Set this flag manually for now.104      /winsysroot105      ${LLVM_WINSYSROOT})106    string(REPLACE ";" " " WINDOWS_COMPILER_FLAGS "${WINDOWS_COMPILER_FLAGS}")107    set(WINDOWS_LINK_FLAGS108      # TODO: lld-link has a bug that it cannot infer the machine type109      # correctly when /winsysroot is set while Windows libraries search paths110      # are not explicitly defined.111      # Explicitly set the machine type for now.112      /machine:X64113      /vfsoverlay:${LLVM_VFSOVERLAY}114      /winsysroot:${LLVM_WINSYSROOT})115    string(REPLACE ";" " " WINDOWS_LINK_FLAGS "${WINDOWS_LINK_FLAGS}")116  endif()117 118  list(APPEND BUILTIN_TARGETS "${target}")119  set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Windows CACHE STRING "")120  set(BUILTINS_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")121  set(BUILTINS_${target}_CMAKE_C_FLAGS ${WINDOWS_COMPILER_FLAGS} CACHE STRING "")122  set(BUILTINS_${target}_CMAKE_CXX_FLAGS ${WINDOWS_COMPILER_FLAGS} CACHE STRING "")123  set(BUILTINS_${target}_CMAKE_EXE_LINKER_FLAGS ${WINDOWS_LINK_FLAGS} CACHE STRING "")124  set(BUILTINS_${target}_CMAKE_SHARED_LINKER_FLAGS ${WINDOWS_LINK_FLAGS} CACHE STRING "")125  set(BUILTINS_${target}_CMAKE_MODULE_LINKER_FLAGS ${WINDOWS_LINK_FLAGS} CACHE STRING "")126 127  list(APPEND RUNTIME_TARGETS "${target}")128  set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Windows CACHE STRING "")129  set(RUNTIMES_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")130  set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")131  set(RUNTIMES_${target}_LIBCXX_ENABLE_ABI_LINKER_SCRIPT OFF CACHE BOOL "")132  set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")133  set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx" CACHE STRING "")134  set(RUNTIMES_${target}_CMAKE_C_FLAGS ${WINDOWS_COMPILER_FLAGS} CACHE STRING "")135  set(RUNTIMES_${target}_CMAKE_CXX_FLAGS ${WINDOWS_COMPILER_FLAGS} CACHE STRING "")136  set(RUNTIMES_${target}_CMAKE_EXE_LINKER_FLAGS ${WINDOWS_LINK_FLAGS} CACHE STRING "")137  set(RUNTIMES_${target}_CMAKE_SHARED_LINKER_FLAGS ${WINDOWS_LINK_FLAGS} CACHE STRING "")138  set(RUNTIMES_${target}_CMAKE_MODULE_LINKER_FLAGS ${WINDOWS_LINK_FLAGS} CACHE STRING "")139endif()140 141foreach(target aarch64-unknown-linux-gnu;armv7-unknown-linux-gnueabihf;i386-unknown-linux-gnu;riscv64-unknown-linux-gnu;x86_64-unknown-linux-gnu)142  if(LINUX_${target}_SYSROOT)143    # Set the per-target builtins options.144    list(APPEND BUILTIN_TARGETS "${target}")145    set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")146    set(BUILTINS_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")147    set(BUILTINS_${target}_CMAKE_C_FLAGS "--target=${target}" CACHE STRING "")148    set(BUILTINS_${target}_CMAKE_CXX_FLAGS "--target=${target}" CACHE STRING "")149    set(BUILTINS_${target}_CMAKE_ASM_FLAGS "--target=${target}" CACHE STRING "")150    set(BUILTINS_${target}_CMAKE_SYSROOT ${LINUX_${target}_SYSROOT} CACHE STRING "")151    set(BUILTINS_${target}_CMAKE_SHARED_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")152    set(BUILTINS_${target}_CMAKE_MODULE_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")153    set(BUILTINS_${target}_CMAKE_EXE_LINKER_FLAG "-fuse-ld=lld" CACHE STRING "")154    set(BUILTINS_${target}_COMPILER_RT_BUILD_STANDALONE_LIBATOMIC ON CACHE BOOL "")155    set(BUILTINS_${target}_COMPILER_RT_LIBATOMIC_USE_PTHREAD ON CACHE BOOL "")156 157    # Set the per-target runtimes options.158    list(APPEND RUNTIME_TARGETS "${target}")159    set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Linux CACHE STRING "")160    set(RUNTIMES_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")161    set(RUNTIMES_${target}_CMAKE_C_FLAGS "--target=${target}" CACHE STRING "")162    set(RUNTIMES_${target}_CMAKE_CXX_FLAGS "--target=${target}" CACHE STRING "")163    set(RUNTIMES_${target}_CMAKE_ASM_FLAGS "--target=${target}" CACHE STRING "")164    set(RUNTIMES_${target}_CMAKE_SYSROOT ${LINUX_${target}_SYSROOT} CACHE STRING "")165    set(RUNTIMES_${target}_CMAKE_SHARED_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")166    set(RUNTIMES_${target}_CMAKE_MODULE_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")167    set(RUNTIMES_${target}_CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")168    set(RUNTIMES_${target}_COMPILER_RT_CXX_LIBRARY "libcxx" CACHE STRING "")169    set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")170    set(RUNTIMES_${target}_COMPILER_RT_USE_ATOMIC_LIBRARY ON CACHE BOOL "")171    set(RUNTIMES_${target}_COMPILER_RT_USE_LLVM_UNWINDER ON CACHE BOOL "")172    set(RUNTIMES_${target}_COMPILER_RT_CAN_EXECUTE_TESTS ON CACHE BOOL "")173    set(RUNTIMES_${target}_COMPILER_RT_BUILD_STANDALONE_LIBATOMIC ON CACHE BOOL "")174    set(RUNTIMES_${target}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "")175    set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")176    set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")177    set(RUNTIMES_${target}_LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "")178    set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")179    set(RUNTIMES_${target}_LIBCXXABI_INSTALL_LIBRARY OFF CACHE BOOL "")180    set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")181    set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")182    set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")183    set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")184    set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")185    set(RUNTIMES_${target}_SANITIZER_CXX_ABI "libc++" CACHE STRING "")186    set(RUNTIMES_${target}_SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "")187    set(RUNTIMES_${target}_SANITIZER_TEST_CXX "libc++" CACHE STRING "")188    set(RUNTIMES_${target}_SANITIZER_TEST_CXX_INTREE ON CACHE BOOL "")189    set(RUNTIMES_${target}_LLVM_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin" CACHE BOOL "")190    set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")191 192    # Enable FatLTO for Linux and baremetal runtimes193    set(RUNTIMES_${target}_LLVM_ENABLE_LTO OFF CACHE BOOL "")194    set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO OFF CACHE BOOL "")195 196    # Use .build-id link.197    list(APPEND RUNTIME_BUILD_ID_LINK "${target}")198  endif()199endforeach()200 201if(FUCHSIA_SDK)202  set(FUCHSIA_aarch64-unknown-fuchsia_NAME arm64)203  set(FUCHSIA_arm-unknown-fuchsia_NAME arm)204  set(FUCHSIA_i386-unknown-fuchsia_NAME x64)205  set(FUCHSIA_x86_64-unknown-fuchsia_NAME x64)206  set(FUCHSIA_riscv64-unknown-fuchsia_NAME riscv64)207  foreach(target i386-unknown-fuchsia;x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;arm-unknown-fuchsia;riscv64-unknown-fuchsia)208    set(FUCHSIA_${target}_COMPILER_FLAGS "--target=${target} -I${FUCHSIA_SDK}/pkg/sync/include -I${FUCHSIA_SDK}/pkg/fdio/include")209    set(FUCHSIA_${target}_LINKER_FLAGS "-L${FUCHSIA_SDK}/arch/${FUCHSIA_${target}_NAME}/lib")210    set(FUCHSIA_${target}_SYSROOT "${FUCHSIA_SDK}/arch/${FUCHSIA_${target}_NAME}/sysroot")211  endforeach()212 213  foreach(target i386-unknown-fuchsia;x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;arm-unknown-fuchsia;riscv64-unknown-fuchsia)214    # Set the per-target builtins options.215    list(APPEND BUILTIN_TARGETS "${target}")216    set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Fuchsia CACHE STRING "")217    set(BUILTINS_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")218    set(BUILTINS_${target}_CMAKE_ASM_FLAGS ${FUCHSIA_${target}_COMPILER_FLAGS} CACHE STRING "")219    set(BUILTINS_${target}_CMAKE_C_FLAGS ${FUCHSIA_${target}_COMPILER_FLAGS} CACHE STRING "")220    set(BUILTINS_${target}_CMAKE_CXX_FLAGS ${FUCHSIA_${target}_COMPILER_FLAGS} CACHE STRING "")221    set(BUILTINS_${target}_CMAKE_SHARED_LINKER_FLAGS ${FUCHSIA_${target}_LINKER_FLAGS} CACHE STRING "")222    set(BUILTINS_${target}_CMAKE_MODULE_LINKER_FLAGS ${FUCHSIA_${target}_LINKER_FLAGS} CACHE STRING "")223    set(BUILTINS_${target}_CMAKE_EXE_LINKER_FLAGS ${FUCHSIA_${target}_LINKER_FLAGS} CACHE STRING "")224    set(BUILTINS_${target}_CMAKE_SYSROOT ${FUCHSIA_${target}_SYSROOT} CACHE PATH "")225  endforeach()226 227  foreach(target x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;riscv64-unknown-fuchsia)228    # Set the per-target runtimes options.229    list(APPEND RUNTIME_TARGETS "${target}")230    set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Fuchsia CACHE STRING "")231    set(RUNTIMES_${target}_CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")232    set(RUNTIMES_${target}_CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE BOOL "")233    set(RUNTIMES_${target}_CMAKE_ASM_FLAGS ${FUCHSIA_${target}_COMPILER_FLAGS} CACHE STRING "")234    set(RUNTIMES_${target}_CMAKE_C_FLAGS ${FUCHSIA_${target}_COMPILER_FLAGS} CACHE STRING "")235    set(RUNTIMES_${target}_CMAKE_CXX_FLAGS ${FUCHSIA_${target}_COMPILER_FLAGS} CACHE STRING "")236    set(RUNTIMES_${target}_CMAKE_SHARED_LINKER_FLAGS ${FUCHSIA_${target}_LINKER_FLAGS} CACHE STRING "")237    set(RUNTIMES_${target}_CMAKE_MODULE_LINKER_FLAGS ${FUCHSIA_${target}_LINKER_FLAGS} CACHE STRING "")238    set(RUNTIMES_${target}_CMAKE_EXE_LINKER_FLAGS ${FUCHSIA_${target}_LINKER_FLAGS} CACHE STRING "")239    set(RUNTIMES_${target}_CMAKE_SYSROOT ${FUCHSIA_${target}_SYSROOT} CACHE PATH "")240    set(RUNTIMES_${target}_COMPILER_RT_CXX_LIBRARY "libcxx" CACHE STRING "")241    set(RUNTIMES_${target}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")242    set(RUNTIMES_${target}_COMPILER_RT_USE_LLVM_UNWINDER ON CACHE BOOL "")243    set(RUNTIMES_${target}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")244    set(RUNTIMES_${target}_LIBUNWIND_HIDE_SYMBOLS ON CACHE BOOL "")245    set(RUNTIMES_${target}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")246    set(RUNTIMES_${target}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "")247    set(RUNTIMES_${target}_LIBCXXABI_HERMETIC_STATIC_LIBRARY ON CACHE BOOL "")248    set(RUNTIMES_${target}_LIBCXXABI_INSTALL_STATIC_LIBRARY OFF CACHE BOOL "")249    set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")250    set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")251    set(RUNTIMES_${target}_LIBCXX_HERMETIC_STATIC_LIBRARY ON CACHE BOOL "")252    set(RUNTIMES_${target}_LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY OFF CACHE BOOL "")253    set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")254    set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")255    set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")256 257    # Compat multilibs.258    set(RUNTIMES_${target}+compat_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "")259    set(RUNTIMES_${target}+compat_LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")260    set(RUNTIMES_${target}+compat_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")261    set(RUNTIMES_${target}+compat_CMAKE_CXX_FLAGS "${FUCHSIA_${target}_COMPILER_FLAGS} -fc++-abi=itanium" CACHE STRING "")262 263    set(RUNTIMES_${target}+asan_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "")264    set(RUNTIMES_${target}+asan_LLVM_USE_SANITIZER "Address" CACHE STRING "")265    set(RUNTIMES_${target}+asan_LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")266    set(RUNTIMES_${target}+asan_LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")267 268    set(RUNTIMES_${target}+noexcept_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "")269    set(RUNTIMES_${target}+noexcept_LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")270    set(RUNTIMES_${target}+noexcept_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")271 272    set(RUNTIMES_${target}+asan+noexcept_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "")273    set(RUNTIMES_${target}+asan+noexcept_LLVM_USE_SANITIZER "Address" CACHE STRING "")274    set(RUNTIMES_${target}+asan+noexcept_LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")275    set(RUNTIMES_${target}+asan+noexcept_LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")276    set(RUNTIMES_${target}+asan+noexcept_LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")277    set(RUNTIMES_${target}+asan+noexcept_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")278 279    # Enable FatLTO for Fuchsia runtimes280    set(RUNTIMES_${target}_LLVM_ENABLE_LTO OFF CACHE BOOL "")281    set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO OFF CACHE BOOL "")282 283    # Use .build-id link.284    list(APPEND RUNTIME_BUILD_ID_LINK "${target}")285  endforeach()286 287  # HWAsan288  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "")289  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan_LLVM_USE_SANITIZER "HWAddress" CACHE STRING "")290  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan_LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")291  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan_LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")292 293  # HWASan+noexcept294  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan+noexcept_LLVM_BUILD_COMPILER_RT OFF CACHE BOOL "")295  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan+noexcept_LLVM_USE_SANITIZER "HWAddress" CACHE STRING "")296  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan+noexcept_LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")297  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan+noexcept_LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "")298  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan+noexcept_LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")299  set(RUNTIMES_aarch64-unknown-fuchsia+hwasan+noexcept_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")300 301  set(LLVM_RUNTIME_MULTILIBS "asan;noexcept;compat;asan+noexcept;hwasan;hwasan+noexcept" CACHE STRING "")302 303  set(LLVM_RUNTIME_MULTILIB_asan_TARGETS "x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;riscv64-unknown-fuchsia" CACHE STRING "")304  set(LLVM_RUNTIME_MULTILIB_noexcept_TARGETS "x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;riscv64-unknown-fuchsia" CACHE STRING "")305  set(LLVM_RUNTIME_MULTILIB_compat_TARGETS "x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;riscv64-unknown-fuchsia" CACHE STRING "")306  set(LLVM_RUNTIME_MULTILIB_asan+noexcept_TARGETS "x86_64-unknown-fuchsia;aarch64-unknown-fuchsia;riscv64-unknown-fuchsia" CACHE STRING "")307  set(LLVM_RUNTIME_MULTILIB_hwasan_TARGETS "aarch64-unknown-fuchsia;riscv64-unknown-fuchsia" CACHE STRING "")308  set(LLVM_RUNTIME_MULTILIB_hwasan+noexcept_TARGETS "aarch64-unknown-fuchsia;riscv64-unknown-fuchsia" CACHE STRING "")309endif()310 311foreach(target armv6m-none-eabi;armv7m-none-eabi;armv7em-none-eabi;armv8m.main-none-eabi;armv8.1m.main-none-eabi;aarch64-none-elf)312  list(APPEND BUILTIN_TARGETS "${target}")313  set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Generic CACHE STRING "")314  set(BUILTINS_${target}_CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")315  set(BUILTINS_${target}_CMAKE_SYSROOT "" CACHE STRING "")316  set(BUILTINS_${target}_CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "")317  foreach(lang C;CXX;ASM)318    set(BUILTINS_${target}_CMAKE_${lang}_local_flags "--target=${target}")319    if(NOT ${target} STREQUAL "aarch64-none-elf")320      set(BUILTINS_${target}_CMAKE_${lang}_local_flags "${BUILTINS_${target}_CMAKE_${lang}_local_flags} -mthumb")321    endif()322    if(${target} STREQUAL "armv8m.main-none-eabi")323      set(BUILTINS_${target}_CMAKE_${lang}_local_flags "${BUILTINS_${target}_CMAKE_${lang}_local_flags} -mfloat-abi=softfp -march=armv8m.main+fp+dsp -mcpu=cortex-m33")324    endif()325    if(${target} STREQUAL "armv8.1m.main-none-eabi")326      set(BUILTINS_${target}_CMAKE_${lang}_local_flags "${BUILTINS_${target}_CMAKE_${lang}_local_flags} -mfloat-abi=hard -march=armv8.1-m.main+mve.fp+fp.dp -mcpu=cortex-m55")327    endif()328    set(BUILTINS_${target}_CMAKE_${lang}_FLAGS "${BUILTINS_${target}_CMAKE_${lang}_local_flags}" CACHE STRING "")329  endforeach()330  foreach(type SHARED;MODULE;EXE)331    set(BUILTINS_${target}_CMAKE_${type}_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")332  endforeach()333  set(BUILTINS_${target}_COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "")334 335  list(APPEND RUNTIME_TARGETS "${target}")336  set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Generic CACHE STRING "")337  set(RUNTIMES_${target}_CMAKE_SYSTEM_PROCESSOR arm CACHE STRING "")338  set(RUNTIMES_${target}_CMAKE_SYSROOT "" CACHE STRING "")339  set(RUNTIMES_${target}_CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "")340  set(RUNTIMES_${target}_CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "")341  foreach(lang C;CXX;ASM)342    # TODO: The preprocessor defines workaround various issues in libc and libc++ integration.343    # These should be addressed and removed over time.344    set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "--target=${target} -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1")345    if(NOT ${target} STREQUAL "aarch64-none-elf")346      set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "${RUNTIMES_${target}_CMAKE_${lang}_local_flags} -mthumb")347    endif()348    if(${target} STREQUAL "armv8m.main-none-eabi")349      set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "${RUNTIMES_${target}_CMAKE_${lang}_local_flags} -mfloat-abi=softfp -march=armv8m.main+fp+dsp -mcpu=cortex-m33")350    endif()351    if(${target} STREQUAL "armv8.1m.main-none-eabi")352      set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "${RUNTIMES_${target}_CMAKE_${lang}_local_flags} -mfloat-abi=hard -march=armv8.1-m.main+mve.fp+fp.dp -mcpu=cortex-m55")353    endif()354    set(RUNTIMES_${target}_CMAKE_${lang}_FLAGS "${RUNTIMES_${target}_CMAKE_${lang}_local_flags}" CACHE STRING "")355  endforeach()356  foreach(type SHARED;MODULE;EXE)357    set(RUNTIMES_${target}_CMAKE_${type}_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")358  endforeach()359  set(RUNTIMES_${target}_LLVM_LIBC_FULL_BUILD ON CACHE BOOL "")360  set(RUNTIMES_${target}_LIBC_ENABLE_USE_BY_CLANG ON CACHE BOOL "")361  set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")362  set(RUNTIMES_${target}_LIBCXX_CXX_ABI none CACHE STRING "")363  set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")364  set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC ON CACHE BOOL "")365  set(RUNTIMES_${target}_LIBCXX_SHARED_OUTPUT_NAME "c++-shared" CACHE STRING "")366  set(RUNTIMES_${target}_LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "")367  set(RUNTIMES_${target}_LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "")368  set(RUNTIMES_${target}_LIBCXX_ENABLE_LOCALIZATION OFF CACHE BOOL "")369  set(RUNTIMES_${target}_LIBCXX_ENABLE_UNICODE OFF CACHE BOOL "")370  set(RUNTIMES_${target}_LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "")371  set(RUNTIMES_${target}_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")372  set(RUNTIMES_${target}_LIBCXX_ENABLE_RTTI OFF CACHE BOOL "")373  set(RUNTIMES_${target}_LIBCXX_ENABLE_THREADS OFF CACHE BOOL "")374  set(RUNTIMES_${target}_LIBCXX_ENABLE_MONOTONIC_CLOCK OFF CACHE BOOL "")375  set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")376  set(RUNTIMES_${target}_LLVM_INCLUDE_TESTS OFF CACHE BOOL "")377  set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")378  set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "libc;libcxx" CACHE STRING "")379  set(RUNTIMES_${target}_RUNTIMES_USE_LIBC "llvm-libc" CACHE STRING "")380 381  # Enable FatLTO for baremetal runtimes382  set(RUNTIMES_${target}_LLVM_ENABLE_LTO OFF CACHE BOOL "")383  set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO OFF CACHE BOOL "")384endforeach()385 386foreach(target riscv32-unknown-elf)387  list(APPEND BUILTIN_TARGETS "${target}")388  set(BUILTINS_${target}_CMAKE_SYSTEM_NAME Generic CACHE STRING "")389  set(BUILTINS_${target}_CMAKE_SYSTEM_PROCESSOR RISCV CACHE STRING "")390  set(BUILTINS_${target}_CMAKE_SYSROOT "" CACHE STRING "")391  set(BUILTINS_${target}_CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "")392  foreach(lang C;CXX;ASM)393    set(BUILTINS_${target}_CMAKE_${lang}_FLAGS "--target=${target} -march=rv32imafc -mabi=ilp32f" CACHE STRING "")394  endforeach()395  foreach(type SHARED;MODULE;EXE)396    set(BUILTINS_${target}_CMAKE_${type}_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")397  endforeach()398  set(BUILTINS_${target}_COMPILER_RT_BAREMETAL_BUILD ON CACHE BOOL "")399 400  list(APPEND RUNTIME_TARGETS "${target}")401  set(RUNTIMES_${target}_CMAKE_SYSTEM_NAME Generic CACHE STRING "")402  set(RUNTIMES_${target}_CMAKE_SYSTEM_PROCESSOR RISCV CACHE STRING "")403  set(RUNTIMES_${target}_CMAKE_SYSROOT "" CACHE STRING "")404  set(RUNTIMES_${target}_CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "")405  set(RUNTIMES_${target}_CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "")406  foreach(lang C;CXX;ASM)407    # TODO: The preprocessor defines workaround various issues in libc and libc++ integration.408    # These should be addressed and removed over time.409    set(RUNTIMES_${target}_CMAKE_${lang}_FLAGS "--target=${target} -march=rv32imafc -mabi=ilp32f -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dfputs(string, stream)=puts(string)\" -D_LIBCPP_PRINT=1" CACHE STRING "")410  endforeach()411  foreach(type SHARED;MODULE;EXE)412    set(RUNTIMES_${target}_CMAKE_${type}_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "")413  endforeach()414  set(RUNTIMES_${target}_LLVM_LIBC_FULL_BUILD ON CACHE BOOL "")415  set(RUNTIMES_${target}_LIBC_ENABLE_USE_BY_CLANG ON CACHE BOOL "")416  set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "")417  set(RUNTIMES_${target}_LIBCXX_CXX_ABI none CACHE STRING "")418  set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "")419  set(RUNTIMES_${target}_LIBCXX_ENABLE_STATIC ON CACHE BOOL "")420  set(RUNTIMES_${target}_LIBCXX_SHARED_OUTPUT_NAME "c++-shared" CACHE STRING "")421  set(RUNTIMES_${target}_LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "")422  set(RUNTIMES_${target}_LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "")423  set(RUNTIMES_${target}_LIBCXX_ENABLE_LOCALIZATION OFF CACHE BOOL "")424  set(RUNTIMES_${target}_LIBCXX_ENABLE_UNICODE OFF CACHE BOOL "")425  set(RUNTIMES_${target}_LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "")426  set(RUNTIMES_${target}_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")427  set(RUNTIMES_${target}_LIBCXX_ENABLE_RTTI OFF CACHE BOOL "")428  set(RUNTIMES_${target}_LIBCXX_ENABLE_THREADS OFF CACHE BOOL "")429  set(RUNTIMES_${target}_LIBCXX_ENABLE_MONOTONIC_CLOCK OFF CACHE BOOL "")430  set(RUNTIMES_${target}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")431  set(RUNTIMES_${target}_LLVM_INCLUDE_TESTS OFF CACHE BOOL "")432  set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")433  set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "libc;libcxx" CACHE STRING "")434  set(RUNTIMES_${target}_RUNTIMES_USE_LIBC "llvm-libc" CACHE STRING "")435 436  # Enable FatLTO for baremetal runtimes437  set(RUNTIMES_${target}_LLVM_ENABLE_LTO OFF CACHE BOOL "")438  set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO OFF CACHE BOOL "")439endforeach()440 441set(LLVM_BUILTIN_TARGETS "${BUILTIN_TARGETS}" CACHE STRING "")442set(LLVM_RUNTIME_TARGETS "${RUNTIME_TARGETS}" CACHE STRING "")443 444# Setup toolchain.445set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")446set(LLVM_TOOLCHAIN_TOOLS447  dsymutil448  llvm-ar449  llvm-cov450  llvm-cxxfilt451  llvm-debuginfod452  llvm-debuginfod-find453  llvm-dlltool454  ${LLVM_DRIVER_TARGET}455  llvm-dwarfdump456  llvm-dwp457  llvm-ifs458  llvm-gsymutil459  llvm-lib460  llvm-libtool-darwin461  llvm-lipo462  llvm-ml463  llvm-mt464  llvm-nm465  llvm-objcopy466  llvm-objdump467  llvm-otool468  llvm-pdbutil469  llvm-profdata470  llvm-rc471  llvm-ranlib472  llvm-readelf473  llvm-readobj474  llvm-size475  llvm-strings476  llvm-strip477  llvm-symbolizer478  llvm-undname479  llvm-xray480  opt-viewer481  sancov482  scan-build-py483  CACHE STRING "")484 485set(LLVM_Toolchain_DISTRIBUTION_COMPONENTS486  bolt487  clang488  lld489  clang-apply-replacements490  clang-doc491  clang-format492  clang-resource-headers493  clang-include-fixer494  clang-refactor495  clang-scan-deps496  clang-tidy497  clangd498  find-all-symbols499  builtins500  runtimes501  ${LLVM_TOOLCHAIN_TOOLS}502  CACHE STRING "")503 504set(_FUCHSIA_DISTRIBUTIONS Toolchain)505 506if(FUCHSIA_ENABLE_LLDB)507  list(APPEND _FUCHSIA_ENABLE_PROJECTS lldb)508  list(APPEND _FUCHSIA_DISTRIBUTIONS Debugger)509  set(_FUCHSIA_LLDB_COMPONENTS510    lldb511    liblldb512    lldb-server513    lldb-argdumper514    lldb-dap515  )516  if(LLDB_ENABLE_PYTHON)517    list(APPEND _FUCHSIA_LLDB_COMPONENTS lldb-python-scripts)518  endif()519  set(LLVM_Debugger_DISTRIBUTION_COMPONENTS ${_FUCHSIA_LLDB_COMPONENTS} CACHE STRING "")520endif()521 522set(LLVM_DISTRIBUTIONS ${_FUCHSIA_DISTRIBUTIONS} CACHE STRING "")523set(LLVM_ENABLE_PROJECTS ${_FUCHSIA_ENABLE_PROJECTS} CACHE STRING "")524