forked from OSchip/llvm-project
Make cmake link flag naming consistent
Summary: The build system was inconsistent in its naming conventions for link flags. This patch changes all uses of LINKFLAGS to LINK_FLAGS, for consistency with cmake's LINK_FLAGS property. This patch should make it easier to search the source code for uses of link flags, as well as providing the benefit of improved style and consistency. Reviewers: compnerd, beanz Subscribers: kubabrecka, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D28506 llvm-svn: 291539
This commit is contained in:
parent
4ebc79bb05
commit
17781c71b0
|
@ -94,7 +94,7 @@ endfunction()
|
|||
# OS <os list>
|
||||
# SOURCES <source files>
|
||||
# CFLAGS <compile flags>
|
||||
# LINKFLAGS <linker flags>
|
||||
# LINK_FLAGS <linker flags>
|
||||
# DEFS <compile definitions>
|
||||
# LINK_LIBS <linked libraries> (only for shared library)
|
||||
# OBJECT_LIBS <object libraries to use as sources>
|
||||
|
@ -107,7 +107,7 @@ function(add_compiler_rt_runtime name type)
|
|||
cmake_parse_arguments(LIB
|
||||
""
|
||||
"PARENT_TARGET"
|
||||
"OS;ARCHS;SOURCES;CFLAGS;LINKFLAGS;DEFS;LINK_LIBS;OBJECT_LIBS"
|
||||
"OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS"
|
||||
${ARGN})
|
||||
set(libnames)
|
||||
if(APPLE)
|
||||
|
@ -116,7 +116,7 @@ function(add_compiler_rt_runtime name type)
|
|||
set(libname "${name}_${os}")
|
||||
else()
|
||||
set(libname "${name}_${os}_dynamic")
|
||||
set(extra_linkflags_${libname} ${DARWIN_${os}_LINKFLAGS} ${LIB_LINKFLAGS})
|
||||
set(extra_link_flags_${libname} ${DARWIN_${os}_LINK_FLAGS} ${LIB_LINK_FLAGS})
|
||||
endif()
|
||||
list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS)
|
||||
if(LIB_ARCHS_${libname})
|
||||
|
@ -139,7 +139,7 @@ function(add_compiler_rt_runtime name type)
|
|||
else()
|
||||
set(libname "${name}-dynamic-${arch}")
|
||||
set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS})
|
||||
set(extra_linkflags_${libname} ${TARGET_${arch}_LINKFLAGS} ${LIB_LINKFLAGS})
|
||||
set(extra_link_flags_${libname} ${TARGET_${arch}_LINK_FLAGS} ${LIB_LINK_FLAGS})
|
||||
if(WIN32)
|
||||
set(output_name_${libname} ${name}_dynamic-${arch}${COMPILER_RT_OS_SUFFIX})
|
||||
else()
|
||||
|
@ -188,7 +188,7 @@ function(add_compiler_rt_runtime name type)
|
|||
|
||||
add_library(${libname} ${type} ${sources_${libname}})
|
||||
set_target_compile_flags(${libname} ${extra_cflags_${libname}})
|
||||
set_target_link_flags(${libname} ${extra_linkflags_${libname}})
|
||||
set_target_link_flags(${libname} ${extra_link_flags_${libname}})
|
||||
set_property(TARGET ${libname} APPEND PROPERTY
|
||||
COMPILE_DEFINITIONS ${LIB_DEFS})
|
||||
set_target_output_directories(${libname} ${COMPILER_RT_LIBRARY_OUTPUT_DIR})
|
||||
|
@ -243,7 +243,7 @@ endfunction()
|
|||
# when cross compiling, COMPILER_RT_TEST_COMPILER_CFLAGS help
|
||||
# in compilation and linking of unittests.
|
||||
string(REPLACE " " ";" COMPILER_RT_UNITTEST_CFLAGS "${COMPILER_RT_TEST_COMPILER_CFLAGS}")
|
||||
set(COMPILER_RT_UNITTEST_LINKFLAGS ${COMPILER_RT_UNITTEST_CFLAGS})
|
||||
set(COMPILER_RT_UNITTEST_LINK_FLAGS ${COMPILER_RT_UNITTEST_CFLAGS})
|
||||
|
||||
# Unittests support.
|
||||
set(COMPILER_RT_GTEST_PATH ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest)
|
||||
|
|
|
@ -66,7 +66,7 @@ function(darwin_test_archs os valid_archs)
|
|||
file(WRITE ${SIMPLE_C} "#include <stdio.h>\nint main() { printf(__FILE__); return 0; }\n")
|
||||
|
||||
set(os_linker_flags)
|
||||
foreach(flag ${DARWIN_${os}_LINKFLAGS})
|
||||
foreach(flag ${DARWIN_${os}_LINK_FLAGS})
|
||||
set(os_linker_flags "${os_linker_flags} ${flag}")
|
||||
endforeach()
|
||||
endif()
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
# Link a shared library with COMPILER_RT_TEST_COMPILER.
|
||||
# clang_link_shared(<output.so>
|
||||
# OBJECTS <list of input objects>
|
||||
# LINKFLAGS <list of link flags>
|
||||
# LINK_FLAGS <list of link flags>
|
||||
# DEPS <list of dependencies>)
|
||||
macro(clang_link_shared so_file)
|
||||
cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINKFLAGS;DEPS" ${ARGN})
|
||||
cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINK_FLAGS;DEPS" ${ARGN})
|
||||
if(NOT COMPILER_RT_STANDALONE_BUILD)
|
||||
list(APPEND SOURCE_DEPS clang)
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${so_file}
|
||||
COMMAND ${COMPILER_RT_TEST_COMPILER} -o "${so_file}" -shared
|
||||
${SOURCE_LINKFLAGS} ${SOURCE_OBJECTS}
|
||||
${SOURCE_LINK_FLAGS} ${SOURCE_OBJECTS}
|
||||
DEPENDS ${SOURCE_DEPS})
|
||||
endmacro()
|
||||
|
|
|
@ -126,7 +126,7 @@ endfunction()
|
|||
# If successful, saves target flags for this architecture.
|
||||
macro(test_target_arch arch def)
|
||||
set(TARGET_${arch}_CFLAGS ${ARGN})
|
||||
set(TARGET_${arch}_LINKFLAGS ${ARGN})
|
||||
set(TARGET_${arch}_LINK_FLAGS ${ARGN})
|
||||
set(argstring "")
|
||||
foreach(arg ${ARGN})
|
||||
set(argstring "${argstring} ${arg}")
|
||||
|
|
|
@ -48,13 +48,13 @@ endmacro()
|
|||
|
||||
# This function is only used on Darwin, where undefined symbols must be specified
|
||||
# in the linker invocation.
|
||||
function(add_weak_symbols libname linkflags)
|
||||
function(add_weak_symbols libname link_flags)
|
||||
file(STRINGS "${COMPILER_RT_SOURCE_DIR}/lib/${libname}/weak_symbols.txt" WEAK_SYMBOLS)
|
||||
set(local_linkflags ${${linkflags}})
|
||||
set(local_link_flags ${${link_flags}})
|
||||
foreach(SYMBOL ${WEAK_SYMBOLS})
|
||||
set(local_linkflags ${local_linkflags} -Wl,-U,${SYMBOL})
|
||||
set(local_link_flags ${local_link_flags} -Wl,-U,${SYMBOL})
|
||||
endforeach()
|
||||
set(${linkflags} ${local_linkflags} PARENT_SCOPE)
|
||||
set(${link_flags} ${local_link_flags} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
macro(add_sanitizer_rt_version_list name)
|
||||
|
|
|
@ -241,26 +241,26 @@ if(APPLE)
|
|||
set(CMAKE_OSX_DEPLOYMENT_TARGET "")
|
||||
|
||||
set(DARWIN_COMMON_CFLAGS -stdlib=libc++)
|
||||
set(DARWIN_COMMON_LINKFLAGS
|
||||
set(DARWIN_COMMON_LINK_FLAGS
|
||||
-stdlib=libc++
|
||||
-lc++
|
||||
-lc++abi)
|
||||
|
||||
check_linker_flag("-fapplication-extension" COMPILER_RT_HAS_APP_EXTENSION)
|
||||
if(COMPILER_RT_HAS_APP_EXTENSION)
|
||||
list(APPEND DARWIN_COMMON_LINKFLAGS "-fapplication-extension")
|
||||
list(APPEND DARWIN_COMMON_LINK_FLAGS "-fapplication-extension")
|
||||
endif()
|
||||
|
||||
set(DARWIN_osx_CFLAGS
|
||||
${DARWIN_COMMON_CFLAGS}
|
||||
-mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION})
|
||||
set(DARWIN_osx_LINKFLAGS
|
||||
${DARWIN_COMMON_LINKFLAGS}
|
||||
set(DARWIN_osx_LINK_FLAGS
|
||||
${DARWIN_COMMON_LINK_FLAGS}
|
||||
-mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION})
|
||||
|
||||
if(DARWIN_osx_SYSROOT)
|
||||
list(APPEND DARWIN_osx_CFLAGS -isysroot ${DARWIN_osx_SYSROOT})
|
||||
list(APPEND DARWIN_osx_LINKFLAGS -isysroot ${DARWIN_osx_SYSROOT})
|
||||
list(APPEND DARWIN_osx_LINK_FLAGS -isysroot ${DARWIN_osx_SYSROOT})
|
||||
endif()
|
||||
|
||||
# Figure out which arches to use for each OS
|
||||
|
@ -283,8 +283,8 @@ if(APPLE)
|
|||
${DARWIN_COMMON_CFLAGS}
|
||||
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
|
||||
-isysroot ${DARWIN_${platform}sim_SYSROOT})
|
||||
set(DARWIN_${platform}sim_LINKFLAGS
|
||||
${DARWIN_COMMON_LINKFLAGS}
|
||||
set(DARWIN_${platform}sim_LINK_FLAGS
|
||||
${DARWIN_COMMON_LINK_FLAGS}
|
||||
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
|
||||
-isysroot ${DARWIN_${platform}sim_SYSROOT})
|
||||
|
||||
|
@ -311,8 +311,8 @@ if(APPLE)
|
|||
${DARWIN_COMMON_CFLAGS}
|
||||
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
|
||||
-isysroot ${DARWIN_${platform}_SYSROOT})
|
||||
set(DARWIN_${platform}_LINKFLAGS
|
||||
${DARWIN_COMMON_LINKFLAGS}
|
||||
set(DARWIN_${platform}_LINK_FLAGS
|
||||
${DARWIN_COMMON_LINK_FLAGS}
|
||||
${DARWIN_${platform}_SANITIZER_MIN_VER_FLAG}
|
||||
-isysroot ${DARWIN_${platform}_SYSROOT})
|
||||
|
||||
|
|
|
@ -106,9 +106,9 @@ endif()
|
|||
add_compiler_rt_component(asan)
|
||||
|
||||
if(APPLE)
|
||||
add_weak_symbols("asan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
|
||||
add_compiler_rt_runtime(clang_rt.asan
|
||||
SHARED
|
||||
|
@ -121,7 +121,7 @@ if(APPLE)
|
|||
RTLSanCommon
|
||||
RTUbsan
|
||||
CFLAGS ${ASAN_DYNAMIC_CFLAGS}
|
||||
LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS}
|
||||
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
|
||||
DEFS ${ASAN_DYNAMIC_DEFINITIONS}
|
||||
PARENT_TARGET asan)
|
||||
else()
|
||||
|
@ -188,7 +188,7 @@ else()
|
|||
RTAsan_dynamic_version_script_dummy
|
||||
RTUbsan_cxx
|
||||
CFLAGS ${ASAN_DYNAMIC_CFLAGS}
|
||||
LINKFLAGS ${ASAN_DYNAMIC_LINK_FLAGS}
|
||||
LINK_FLAGS ${ASAN_DYNAMIC_LINK_FLAGS}
|
||||
${VERSION_SCRIPT_FLAG}
|
||||
LINK_LIBS ${ASAN_DYNAMIC_LIBS}
|
||||
DEFS ${ASAN_DYNAMIC_DEFINITIONS}
|
||||
|
|
|
@ -36,8 +36,8 @@ append_list_if(COMPILER_RT_HAS_WVARIADIC_MACROS_FLAG -Wno-variadic-macros ASAN_U
|
|||
|
||||
# This will ensure the target linker is used
|
||||
# during cross compilation
|
||||
set(ASAN_UNITTEST_COMMON_LINKFLAGS
|
||||
${COMPILER_RT_UNITTEST_LINKFLAGS})
|
||||
set(ASAN_UNITTEST_COMMON_LINK_FLAGS
|
||||
${COMPILER_RT_UNITTEST_LINK_FLAGS})
|
||||
|
||||
# -gline-tables-only must be enough for ASan, so use it if possible.
|
||||
if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang")
|
||||
|
@ -48,7 +48,7 @@ endif()
|
|||
if(MSVC)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gcodeview)
|
||||
endif()
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS -g)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -g)
|
||||
|
||||
# Use -D instead of definitions to please custom compile command.
|
||||
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
|
||||
|
@ -58,12 +58,12 @@ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
|
|||
|
||||
if(APPLE)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS ${DARWIN_osx_CFLAGS})
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS ${DARWIN_osx_LINKFLAGS})
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS ${DARWIN_osx_LINK_FLAGS})
|
||||
|
||||
add_weak_symbols("asan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS})
|
||||
add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS})
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
|
@ -82,41 +82,41 @@ if(CAN_TARGET_x86_64 OR CAN_TARGET_i386)
|
|||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS --driver-mode=g++)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS --driver-mode=g++)
|
||||
endif()
|
||||
|
||||
# x86_64 FreeBSD 9.2 additionally requires libc++ to build the tests.
|
||||
if(CMAKE_SYSTEM MATCHES "FreeBSD-9.2-RELEASE")
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS "-lc++")
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS "-lc++")
|
||||
endif()
|
||||
|
||||
# Unit tests on Mac depend on Foundation.
|
||||
if(APPLE)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS -framework Foundation)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -framework Foundation)
|
||||
endif()
|
||||
if(ANDROID)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINKFLAGS -pie)
|
||||
list(APPEND ASAN_UNITTEST_COMMON_LINK_FLAGS -pie)
|
||||
endif()
|
||||
|
||||
set(ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS
|
||||
${ASAN_UNITTEST_COMMON_LINKFLAGS})
|
||||
list(APPEND ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS -fsanitize=address)
|
||||
set(ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS
|
||||
${ASAN_UNITTEST_COMMON_LINK_FLAGS})
|
||||
list(APPEND ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS -fsanitize=address)
|
||||
|
||||
set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS
|
||||
${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS}
|
||||
set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS
|
||||
${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS}
|
||||
-shared-libasan)
|
||||
|
||||
set(ASAN_UNITTEST_INSTRUMENTED_LIBS)
|
||||
# NDK r10 requires -latomic almost always.
|
||||
append_list_if(ANDROID atomic ASAN_UNITTEST_INSTRUMENTED_LIBS)
|
||||
|
||||
set(ASAN_UNITTEST_NOINST_LINKFLAGS ${ASAN_UNITTEST_COMMON_LINKFLAGS})
|
||||
set(ASAN_UNITTEST_NOINST_LINK_FLAGS ${ASAN_UNITTEST_COMMON_LINK_FLAGS})
|
||||
if(NOT APPLE)
|
||||
append_list_if(COMPILER_RT_HAS_LIBM -lm ASAN_UNITTEST_NOINST_LINKFLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL -ldl ASAN_UNITTEST_NOINST_LINKFLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBRT -lrt ASAN_UNITTEST_NOINST_LINKFLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_UNITTEST_NOINST_LINKFLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBM -lm ASAN_UNITTEST_NOINST_LINK_FLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBDL -ldl ASAN_UNITTEST_NOINST_LINK_FLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBRT -lrt ASAN_UNITTEST_NOINST_LINK_FLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_UNITTEST_NOINST_LINK_FLAGS)
|
||||
append_list_if(COMPILER_RT_HAS_LIBPTHREAD -pthread ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS)
|
||||
endif()
|
||||
|
||||
# TODO(eugenis): move all -l flags above to _LIBS?
|
||||
|
@ -148,7 +148,7 @@ endmacro()
|
|||
# Link ASan unit test for a given architecture from a set
|
||||
# of objects in with given linker flags.
|
||||
macro(add_asan_test test_suite test_name arch kind)
|
||||
cmake_parse_arguments(TEST "WITH_TEST_RUNTIME" "" "OBJECTS;LINKFLAGS;SUBDIR" ${ARGN})
|
||||
cmake_parse_arguments(TEST "WITH_TEST_RUNTIME" "" "OBJECTS;LINK_FLAGS;SUBDIR" ${ARGN})
|
||||
get_target_flags_for_arch(${arch} TARGET_LINK_FLAGS)
|
||||
set(TEST_DEPS ${TEST_OBJECTS})
|
||||
if(NOT COMPILER_RT_STANDALONE_BUILD)
|
||||
|
@ -172,7 +172,7 @@ macro(add_asan_test test_suite test_name arch kind)
|
|||
SUBDIR ${TEST_SUBDIR}
|
||||
OBJECTS ${TEST_OBJECTS}
|
||||
DEPS ${TEST_DEPS}
|
||||
LINK_FLAGS ${TEST_LINKFLAGS}
|
||||
LINK_FLAGS ${TEST_LINK_FLAGS}
|
||||
${TARGET_LINK_FLAGS})
|
||||
endmacro()
|
||||
|
||||
|
@ -237,8 +237,8 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
endforeach()
|
||||
# Clang links the static CRT by default. Override that to use the dynamic
|
||||
# CRT.
|
||||
set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS
|
||||
${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS}
|
||||
set(ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS
|
||||
${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS}
|
||||
-Wl,-nodefaultlib:libcmt,-defaultlib:msvcrt,-defaultlib:oldnames)
|
||||
else()
|
||||
set(ASAN_INST_DYNAMIC_TEST_OBJECTS ${ASAN_INST_TEST_OBJECTS})
|
||||
|
@ -256,7 +256,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
add_asan_test(AsanUnitTests "Asan-${arch}${kind}-Test"
|
||||
${arch} ${kind} SUBDIR "default"
|
||||
OBJECTS ${ASAN_INST_TEST_OBJECTS}
|
||||
LINKFLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS})
|
||||
LINK_FLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
|
||||
if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
|
||||
# Create the 'dynamic' folder where ASAN tests are produced.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
|
@ -270,7 +270,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
add_asan_test(AsanDynamicUnitTests "Asan-${arch}${kind}-Dynamic-Test"
|
||||
${arch} ${kind} SUBDIR "dynamic"
|
||||
OBJECTS ${ASAN_INST_DYNAMIC_TEST_OBJECTS}
|
||||
LINKFLAGS ${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINKFLAGS})
|
||||
LINK_FLAGS ${ASAN_DYNAMIC_UNITTEST_INSTRUMENTED_LINK_FLAGS})
|
||||
endif()
|
||||
|
||||
# Add static ASan runtime that will be linked with uninstrumented tests.
|
||||
|
@ -307,7 +307,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
add_asan_test(AsanUnitTests "Asan-${arch}${kind}-Noinst-Test"
|
||||
${arch} ${kind} SUBDIR "default"
|
||||
OBJECTS ${ASAN_NOINST_TEST_OBJECTS}
|
||||
LINKFLAGS ${ASAN_UNITTEST_NOINST_LINKFLAGS}
|
||||
LINK_FLAGS ${ASAN_UNITTEST_NOINST_LINK_FLAGS}
|
||||
WITH_TEST_RUNTIME)
|
||||
|
||||
# Benchmarks.
|
||||
|
@ -319,7 +319,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
add_asan_test(AsanBenchmarks "Asan-${arch}${kind}-Benchmark"
|
||||
${arch} ${kind} SUBDIR "default"
|
||||
OBJECTS ${ASAN_BENCHMARKS_OBJECTS}
|
||||
LINKFLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS})
|
||||
LINK_FLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
|
||||
endmacro()
|
||||
|
||||
if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID)
|
||||
|
@ -347,7 +347,7 @@ if(ANDROID)
|
|||
${COMPILER_RT_GTEST_SOURCE}
|
||||
${ASAN_NOINST_TEST_SOURCES})
|
||||
set_target_compile_flags(AsanNoinstTest ${ASAN_UNITTEST_COMMON_CFLAGS})
|
||||
set_target_link_flags(AsanNoinstTest ${ASAN_UNITTEST_NOINST_LINKFLAGS})
|
||||
set_target_link_flags(AsanNoinstTest ${ASAN_UNITTEST_NOINST_LINK_FLAGS})
|
||||
target_link_libraries(AsanNoinstTest ${ASAN_UNITTEST_NOINST_LIBS})
|
||||
|
||||
# Test with ASan instrumentation. Link with ASan dynamic runtime.
|
||||
|
@ -355,7 +355,7 @@ if(ANDROID)
|
|||
${COMPILER_RT_GTEST_SOURCE}
|
||||
${ASAN_INST_TEST_SOURCES})
|
||||
set_target_compile_flags(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_CFLAGS})
|
||||
set_target_link_flags(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_LINKFLAGS})
|
||||
set_target_link_flags(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
|
||||
target_link_libraries(AsanTest ${ASAN_UNITTEST_INSTRUMENTED_LIBS})
|
||||
|
||||
# Setup correct output directory and link flags.
|
||||
|
|
|
@ -69,15 +69,15 @@ macro(msan_compile obj_list source arch kind)
|
|||
endmacro()
|
||||
|
||||
macro(msan_link_shared so_list so_name arch kind)
|
||||
cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINKFLAGS;DEPS" ${ARGN})
|
||||
cmake_parse_arguments(SOURCE "" "" "OBJECTS;LINK_FLAGS;DEPS" ${ARGN})
|
||||
set(output_so "${CMAKE_CURRENT_BINARY_DIR}/${so_name}.${arch}${kind}.so")
|
||||
get_target_flags_for_arch(${arch} TARGET_LINKFLAGS)
|
||||
get_target_flags_for_arch(${arch} TARGET_LINK_FLAGS)
|
||||
if(NOT COMPILER_RT_STANDALONE_BUILD)
|
||||
list(APPEND SOURCE_DEPS msan)
|
||||
endif()
|
||||
clang_link_shared(${output_so}
|
||||
OBJECTS ${SOURCE_OBJECTS}
|
||||
LINKFLAGS ${TARGET_LINKFLAGS} ${SOURCE_LINKFLAGS}
|
||||
LINK_FLAGS ${TARGET_LINK_FLAGS} ${SOURCE_LINK_FLAGS}
|
||||
DEPS ${SOURCE_DEPS})
|
||||
list(APPEND ${so_list} ${output_so})
|
||||
endmacro()
|
||||
|
|
|
@ -80,10 +80,10 @@ endif()
|
|||
|
||||
if(APPLE)
|
||||
list(APPEND SANITIZER_TEST_CFLAGS_COMMON ${DARWIN_osx_CFLAGS})
|
||||
list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON ${DARWIN_osx_LINKFLAGS})
|
||||
list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON ${DARWIN_osx_LINK_FLAGS})
|
||||
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON ${WEAK_SYMBOL_LINKFLAGS})
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON ${WEAK_SYMBOL_LINK_FLAGS})
|
||||
endif()
|
||||
|
||||
# MSVC linker is allocating 1M for the stack by default, which is not
|
||||
|
|
|
@ -6,13 +6,13 @@ set_target_properties(stats PROPERTIES FOLDER "Compiler-RT Misc")
|
|||
if(APPLE)
|
||||
set(STATS_LIB_FLAVOR SHARED)
|
||||
|
||||
add_weak_symbols("asan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
else()
|
||||
set(STATS_LIB_FLAVOR STATIC)
|
||||
|
||||
set(WEAK_SYMBOL_LINKFLAGS)
|
||||
set(WEAK_SYMBOL_LINK_FLAGS)
|
||||
endif()
|
||||
|
||||
add_compiler_rt_runtime(clang_rt.stats
|
||||
|
@ -23,7 +23,7 @@ add_compiler_rt_runtime(clang_rt.stats
|
|||
OBJECT_LIBS RTSanitizerCommon
|
||||
RTSanitizerCommonLibc
|
||||
CFLAGS ${SANITIZER_COMMON_CFLAGS}
|
||||
LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS}
|
||||
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
|
||||
PARENT_TARGET stats)
|
||||
|
||||
add_compiler_rt_runtime(clang_rt.stats_client
|
||||
|
@ -32,5 +32,5 @@ add_compiler_rt_runtime(clang_rt.stats_client
|
|||
OS ${SANITIZER_COMMON_SUPPORTED_OS}
|
||||
SOURCES stats_client.cc
|
||||
CFLAGS ${SANITIZER_COMMON_CFLAGS}
|
||||
LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS}
|
||||
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
|
||||
PARENT_TARGET stats)
|
||||
|
|
|
@ -108,8 +108,8 @@ if(APPLE)
|
|||
set_source_files_properties(${TSAN_ASM_SOURCES} PROPERTIES LANGUAGE C)
|
||||
endif()
|
||||
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
|
||||
add_compiler_rt_runtime(clang_rt.tsan
|
||||
SHARED
|
||||
|
@ -121,7 +121,7 @@ if(APPLE)
|
|||
RTSanitizerCommonLibc
|
||||
RTUbsan
|
||||
CFLAGS ${TSAN_RTL_CFLAGS}
|
||||
LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS}
|
||||
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
|
||||
PARENT_TARGET tsan)
|
||||
add_compiler_rt_object_libraries(RTTsan_dynamic
|
||||
OS ${TSAN_SUPPORTED_OS}
|
||||
|
|
|
@ -77,8 +77,8 @@ macro(add_tsan_unittest testname)
|
|||
list(APPEND TEST_OBJECTS lib${TSAN_TEST_RUNTIME}.a)
|
||||
list(APPEND TEST_DEPS ${TSAN_TEST_RUNTIME})
|
||||
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
|
||||
# Intentionally do *not* link with `-fsanitize=thread`. We already link
|
||||
# against a static version of the runtime, and we don't want the dynamic
|
||||
|
@ -87,7 +87,7 @@ macro(add_tsan_unittest testname)
|
|||
OBJECTS ${TEST_OBJECTS}
|
||||
DEPS ${TEST_DEPS}
|
||||
LINK_FLAGS ${TARGET_LINK_FLAGS} ${DARWIN_osx_LINK_FLAGS}
|
||||
${WEAK_SYMBOL_LINKFLAGS} -lc++)
|
||||
${WEAK_SYMBOL_LINK_FLAGS} -lc++)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
|
|
@ -56,8 +56,8 @@ if(APPLE)
|
|||
SOURCES ${UBSAN_STANDALONE_SOURCES}
|
||||
CFLAGS ${UBSAN_STANDALONE_CFLAGS})
|
||||
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINKFLAGS)
|
||||
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
|
||||
add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)
|
||||
|
||||
add_compiler_rt_runtime(clang_rt.ubsan
|
||||
SHARED
|
||||
|
@ -67,7 +67,7 @@ if(APPLE)
|
|||
RTUbsan_standalone
|
||||
RTSanitizerCommon
|
||||
RTSanitizerCommonLibc
|
||||
LINKFLAGS ${WEAK_SYMBOL_LINKFLAGS}
|
||||
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
|
||||
PARENT_TARGET ubsan)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -61,18 +61,18 @@ else:
|
|||
# GCC-ASan doesn't link in all the necessary libraries automatically, so
|
||||
# we have to do it ourselves.
|
||||
if config.compiler_id == 'GNU':
|
||||
extra_linkflags = ["-pthread", "-lstdc++", libdl_flag]
|
||||
extra_link_flags = ["-pthread", "-lstdc++", libdl_flag]
|
||||
else:
|
||||
extra_linkflags = []
|
||||
extra_link_flags = []
|
||||
|
||||
# BFD linker in 64-bit android toolchains fails to find libm.so, which is a
|
||||
# transitive shared library dependency (via asan runtime).
|
||||
if config.android:
|
||||
extra_linkflags += ["-lm"]
|
||||
extra_link_flags += ["-lm"]
|
||||
|
||||
# Setup default compiler flags used with -fsanitize=address option.
|
||||
# FIXME: Review the set of required flags and check if it can be reduced.
|
||||
target_cflags = [get_required_attr(config, "target_cflags")] + extra_linkflags
|
||||
target_cflags = [get_required_attr(config, "target_cflags")] + extra_link_flags
|
||||
target_cxxflags = config.cxx_mode_flags + target_cflags
|
||||
clang_asan_static_cflags = (["-fsanitize=address",
|
||||
"-mno-omit-leaf-frame-pointer",
|
||||
|
|
|
@ -34,9 +34,9 @@ if config.test_exec_root is None:
|
|||
raise SystemExit
|
||||
|
||||
if config.host_os in ['Linux']:
|
||||
extra_linkflags = ["-ldl"]
|
||||
extra_link_flags = ["-ldl"]
|
||||
else:
|
||||
extra_linkflags = []
|
||||
extra_link_flags = []
|
||||
|
||||
# Test suffixes.
|
||||
config.suffixes = ['.c', '.cc', '.cpp', '.m', '.mm', '.ll', '.test']
|
||||
|
@ -46,7 +46,7 @@ config.excludes = ['Inputs']
|
|||
|
||||
# Clang flags.
|
||||
target_cflags=[get_required_attr(config, "target_cflags")]
|
||||
clang_cflags = target_cflags + extra_linkflags
|
||||
clang_cflags = target_cflags + extra_link_flags
|
||||
clang_cxxflags = config.cxx_mode_flags + clang_cflags
|
||||
|
||||
def build_invocation(compile_flags, with_lto = False):
|
||||
|
|
Loading…
Reference in New Issue