[compiler-rt] r243604 - [CMake] Pass -march=i686 when targeting i686 (PR24222)

Hans Wennborg hans at hanshq.net
Wed Jul 29 18:45:17 PDT 2015


Author: hans
Date: Wed Jul 29 20:45:17 2015
New Revision: 243604

URL: http://llvm.org/viewvc/llvm-project?rev=243604&view=rev
Log:
[CMake] Pass -march=i686 when targeting i686 (PR24222)

Clang will not define __i686__, even when the target triple is i686,
without -march=i686.

With this patch, the compiler-rt build will successfully detect that
Clang can target i686.

The open_memstream.cc test is a little funny. Before my patch, it
was invoked with "-m32 -m64". To make it work after my -march
change, I had to add '-march=x86-64'.

Differential Revision: http://reviews.llvm.org/D11618

Modified:
    compiler-rt/trunk/cmake/config-ix.cmake
    compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/open_memstream.cc

Modified: compiler-rt/trunk/cmake/config-ix.cmake
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=243604&r1=243603&r2=243604&view=diff
==============================================================================
--- compiler-rt/trunk/cmake/config-ix.cmake (original)
+++ compiler-rt/trunk/cmake/config-ix.cmake Wed Jul 29 20:45:17 2015
@@ -180,7 +180,8 @@ else()
       # FIXME: We build runtimes for both i686 and i386, as "clang -m32" may
       # target different variant than "$CMAKE_C_COMPILER -m32". This part should
       # be gone after we resolve PR14109.
-      test_target_arch(i686 __i686__ "-m32")
+      # Use -march to make sure Clang defines __i686__; see PR24222.
+      test_target_arch(i686 __i686__ "-m32" "-march=i686")
       test_target_arch(i386 __i386__ "-m32")
     else()
       if (CMAKE_SIZEOF_VOID_P EQUAL 4)

Modified: compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/open_memstream.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/open_memstream.cc?rev=243604&r1=243603&r2=243604&view=diff
==============================================================================
--- compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/open_memstream.cc (original)
+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/open_memstream.cc Wed Jul 29 20:45:17 2015
@@ -1,5 +1,5 @@
-// RUN: %clangxx -m64 -O0 -g -xc++ %s -o %t && %run %t
-// RUN: %clangxx -m64 -O3 -g -xc++ %s -o %t && %run %t
+// RUN: %clangxx -m64 -march=x86-64 -O0 -g -xc++ %s -o %t && %run %t
+// RUN: %clangxx -m64 -march=x86-64 -O3 -g -xc++ %s -o %t && %run %t
 // REQUIRES: x86_64-supported-target
 
 #include <assert.h>





More information about the llvm-commits mailing list