summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/cmake/builtin-config-ix.cmake6
-rw-r--r--compiler-rt/lib/builtins/CMakeLists.txt19
2 files changed, 20 insertions, 5 deletions
diff --git a/compiler-rt/cmake/builtin-config-ix.cmake b/compiler-rt/cmake/builtin-config-ix.cmake
index a5704e5fed5..e3f13203321 100644
--- a/compiler-rt/cmake/builtin-config-ix.cmake
+++ b/compiler-rt/cmake/builtin-config-ix.cmake
@@ -48,6 +48,12 @@ set(ALL_BUILTIN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
include(CompilerRTUtils)
include(CompilerRTDarwinUtils)
+# If targeting ARM, check if VFP is supported.
+if(CAN_TARGET_arm)
+ string(REPLACE ";" " " _TARGET_arm_CFLAGS "${TARGET_arm_CFLAGS}")
+ check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_arm_CFLAGS}" COMPILER_RT_HAS_ARM_VFP)
+endif()
+
if(APPLE)
find_darwin_sdk_dir(DARWIN_osx_SYSROOT macosx)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
index 5e7f2246787..2099c46efa4 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -394,11 +394,20 @@ set(arm_Thumb1_VFPv2_SOURCES
arm/unordsf2vfp.S)
set(arm_Thumb1_icache_SOURCES
arm/sync_synchronize.S)
-set(arm_Thumb1_SOURCES
- ${arm_Thumb1_JT_SOURCES}
- ${arm_Thumb1_SjLj_EH_SOURCES}
- ${arm_Thumb1_VFPv2_SOURCES}
- ${arm_Thumb1_icache_SOURCES})
+
+# If VFP is supported, include arm_Thumb1_SjLj_EH_SOURCES and
+# arm_Thumb1_VFPv2_SOURCES in arm_Thumb1_SOURCES.
+if(COMPILER_RT_HAS_ARM_VFP)
+ set(arm_Thumb1_SOURCES
+ ${arm_Thumb1_JT_SOURCES}
+ ${arm_Thumb1_SjLj_EH_SOURCES}
+ ${arm_Thumb1_VFPv2_SOURCES}
+ ${arm_Thumb1_icache_SOURCES})
+else()
+ set(arm_Thumb1_SOURCES
+ ${arm_Thumb1_JT_SOURCES}
+ ${arm_Thumb1_icache_SOURCES})
+endif()
if(MINGW)
set(arm_SOURCES
OpenPOWER on IntegriCloud