| # Build for the minimal undefined behavior sanitizer runtime support library. |
| |
| set(UBSAN_MINIMAL_SOURCES |
| ubsan_minimal_handlers.cpp |
| ) |
| |
| include_directories(..) |
| |
| set(UBSAN_CFLAGS ${SANITIZER_COMMON_CFLAGS}) |
| append_rtti_flag(OFF UBSAN_CFLAGS) |
| |
| set(UBSAN_LINK_FLAGS ${SANITIZER_COMMON_LINK_FLAGS}) |
| |
| set(UBSAN_DYNAMIC_LIBS ${SANITIZER_COMMON_LINK_LIBS}) |
| |
| add_compiler_rt_component(ubsan-minimal) |
| |
| # Common parts of minimal UBSan runtime. |
| add_compiler_rt_object_libraries(RTUbsan_minimal |
| OS ${SANITIZER_COMMON_SUPPORTED_OS} |
| ARCHS ${UBSAN_COMMON_SUPPORTED_ARCH} |
| SOURCES ${UBSAN_MINIMAL_SOURCES} CFLAGS ${UBSAN_CFLAGS}) |
| |
| |
| if(COMPILER_RT_HAS_UBSAN_MINIMAL) |
| # Standalone minimal UBSan runtimes. |
| add_compiler_rt_runtime(clang_rt.ubsan_minimal |
| STATIC |
| OS ${UBSAN_SUPPORTED_OS} |
| ARCHS ${UBSAN_SUPPORTED_ARCH} |
| OBJECT_LIBS RTUbsan_minimal |
| CFLAGS ${UBSAN_CFLAGS} |
| PARENT_TARGET ubsan-minimal) |
| |
| add_compiler_rt_runtime(clang_rt.ubsan_minimal |
| SHARED |
| OS ${UBSAN_SUPPORTED_OS} |
| ARCHS ${UBSAN_SUPPORTED_ARCH} |
| OBJECT_LIBS RTUbsan_minimal |
| CFLAGS ${UBSAN_CFLAGS} |
| LINK_FLAGS ${UBSAN_LINK_FLAGS} |
| LINK_LIBS ${UBSAN_DYNAMIC_LIBS} |
| PARENT_TARGET ubsan-minimal) |
| |
| if (SANITIZER_USE_SYMBOLS AND NOT APPLE) |
| set(ARCHS_FOR_SYMBOLS ${UBSAN_SUPPORTED_ARCH}) |
| list(REMOVE_ITEM ARCHS_FOR_SYMBOLS i386 i686) |
| add_sanitizer_rt_symbols(clang_rt.ubsan_minimal |
| ARCHS ${ARCHS_FOR_SYMBOLS} |
| PARENT_TARGET ubsan-minimal |
| EXTRA ubsan.syms.extra) |
| endif() |
| endif() |