diff options
-rw-r--r-- | compiler-rt/cmake/builtin-config-ix.cmake | 6 | ||||
-rw-r--r-- | compiler-rt/lib/builtins/CMakeLists.txt | 19 |
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 |