[PATCH] D67401: Use host's executable suffix for clang when cross-compiling compiler-rt
Sergej Jaskiewicz via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 10 07:55:58 PDT 2019
broadwaylamb created this revision.
broadwaylamb added reviewers: beanz, rnk, compnerd, samsonov.
Herald added subscribers: llvm-commits, Sanitizers, mgorny, dberris.
Herald added projects: Sanitizers, LLVM.
When cross-compiling compiler-rt as part of LLVM e. g. for Linux on
a Windows host and using the just-built clang as cross-compiler, we set
the -DBUILTINS_CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Linux" flag in top-level
cmake invocation, which causes CMAKE_EXECUTABLE_SUFFIX to be an empty
string in the nested cmake invocation for building builtins.
But the compiler for compiling test cases is meant to be run on host,
therefore it may have the '.exe' suffix.
Handle this by asking cmake about the host system.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D67401
Files:
compiler-rt/cmake/base-config-ix.cmake
Index: compiler-rt/cmake/base-config-ix.cmake
===================================================================
--- compiler-rt/cmake/base-config-ix.cmake
+++ compiler-rt/cmake/base-config-ix.cmake
@@ -47,11 +47,21 @@
${LLVM_INCLUDE_TESTS})
option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered"
${LLVM_ENABLE_WERROR})
+
# Use just-built Clang to compile/link tests on all platforms.
+ if(CMAKE_CROSSCOMPILING)
+ if(CMAKE_HOST_WIN32)
+ set(_host_executable_suffix ".exe")
+ else()
+ set(_host_executable_suffix "")
+ endif()
+ else()
+ set(_host_executable_suffix ${CMAKE_EXECUTABLE_SUFFIX})
+ endif()
set(COMPILER_RT_TEST_COMPILER
- ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang${CMAKE_EXECUTABLE_SUFFIX})
+ ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang${_host_executable_suffix})
set(COMPILER_RT_TEST_CXX_COMPILER
- ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++${CMAKE_EXECUTABLE_SUFFIX})
+ ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++${_host_executable_suffix})
else()
# Take output dir and install path from the user.
set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67401.219545.patch
Type: text/x-patch
Size: 1153 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190910/17ef9092/attachment.bin>
More information about the llvm-commits
mailing list