[compiler-rt] Use exact spelling when building for default target
authorPetr Hosek <phosek@chromium.org>
Fri, 16 Nov 2018 04:14:23 +0000 (04:14 +0000)
committerPetr Hosek <phosek@chromium.org>
Fri, 16 Nov 2018 04:14:23 +0000 (04:14 +0000)
When building for default target only, use exact target spelling
when deriving the name for the per-target runtime directory. This
is necessary for AArch32 where the CMake build by default rewrites
the architecture which leads to unexpected results.

Differential Revision: https://reviews.llvm.org/D54612

llvm-svn: 347022

compiler-rt/cmake/Modules/CompilerRTUtils.cmake

index d2cb486..c450032 100644 (file)
@@ -337,7 +337,10 @@ endfunction()
 function(get_compiler_rt_target arch variable)
   string(FIND ${COMPILER_RT_DEFAULT_TARGET_TRIPLE} "-" dash_index)
   string(SUBSTRING ${COMPILER_RT_DEFAULT_TARGET_TRIPLE} ${dash_index} -1 triple_suffix)
-  if(ANDROID AND ${arch} STREQUAL "i386")
+  if(COMPILER_RT_DEFAULT_TARGET_ONLY)
+    # Use exact spelling when building only for the target specified to CMake.
+    set(target "${COMPILER_RT_DEFAULT_TARGET_TRIPLE}")
+  elseif(ANDROID AND ${arch} STREQUAL "i386")
     set(target "i686${COMPILER_RT_OS_SUFFIX}${triple_suffix}")
   else()
     set(target "${arch}${triple_suffix}")