| # Copyright 2020 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| #------------------------------------------------------------------------------- |
| # Sanitizer configurations |
| #------------------------------------------------------------------------------- |
| |
| # Note: we add these flags to the global CMake flags, not to IREE-specific |
| # variables such as IREE_DEFAULT_COPTS so that all symbols are consistently |
| # defined with the same sanitizer flags, including e.g. standard library |
| # symbols that might be used by both IREE and non-IREE (e.g. LLVM) code. |
| |
| if(${IREE_ENABLE_ASAN}) |
| string(APPEND CMAKE_CXX_FLAGS " -fsanitize=address") |
| string(APPEND CMAKE_C_FLAGS " -fsanitize=address") |
| endif() |
| if(${IREE_ENABLE_MSAN}) |
| string(APPEND CMAKE_CXX_FLAGS " -fsanitize=memory") |
| string(APPEND CMAKE_C_FLAGS " -fsanitize=memory") |
| endif() |
| if(${IREE_ENABLE_TSAN}) |
| string(APPEND CMAKE_CXX_FLAGS " -fsanitize=thread") |
| string(APPEND CMAKE_C_FLAGS " -fsanitize=thread") |
| endif() |
| if(ANDROID) |
| # Work around https://github.com/android/ndk/issues/1088 |
| if(${IREE_ENABLE_ASAN} OR ${IREE_ENABLE_MSAN} OR ${IREE_ENABLE_TSAN}) |
| string(APPEND CMAKE_EXE_LINKER_FLAGS " -fuse-ld=gold") |
| string(APPEND CMAKE_SHARED_LINKER_FLAGS " -fuse-ld=gold") |
| endif() |
| endif() |