From 807c0ae56966984f713293e0a7eed3ca26f9602b Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Tue, 20 Sep 2016 21:36:30 +0000 Subject: [PATCH] [CMake] Explicitly add --target option to compiler flags Summary: Much of the non-Darwin build system assumes that COMPILER_RT_DEFAULT_TARGET_TRIPLE is the default target triple for the compiler being used. With clang as your compiler this isn't necessarily true. To ensure that the rest of the build system behaves as expected this patch adds "--target=${COMPILER_RT_DEFAULT_TARGET_TRIPLE}" to the compiler flags for C, CXX and ASM sources. Reviewers: compnerd, rengolin, fjricci Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D24156 llvm-svn: 282024 --- compiler-rt/cmake/Modules/CompilerRTUtils.cmake | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake index ba2a7bc..e57a93e 100644 --- a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake +++ b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake @@ -227,6 +227,18 @@ macro(construct_compiler_rt_default_triple) set(COMPILER_RT_DEFAULT_TARGET_TRIPLE ${COMPILER_RT_TEST_TARGET_TRIPLE}) endif() + if(NOT APPLE) + # Much of the non-darwin compiler-rt build assumes that + # COMPILER_RT_DEFAULT_TARGET_TRIPLE is the default target of the compiler + # being used. That isn't always a safe assumption, but adding this here + # makes it all work. + # This doesn't prevent needing to set CMAKE__COMPILER_TARGET in some + # situations, so YMMV. + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --target=${COMPILER_RT_DEFAULT_TARGET_TRIPLE}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --target=${COMPILER_RT_DEFAULT_TARGET_TRIPLE}") + set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} --target=${COMPILER_RT_DEFAULT_TARGET_TRIPLE}") + endif() + string(REPLACE "-" ";" TARGET_TRIPLE_LIST ${COMPILER_RT_DEFAULT_TARGET_TRIPLE}) list(GET TARGET_TRIPLE_LIST 0 COMPILER_RT_DEFAULT_TARGET_ARCH) list(GET TARGET_TRIPLE_LIST 1 COMPILER_RT_DEFAULT_TARGET_OS) -- 2.7.4