32-bit targets don't build these by default, but e.g. armv7 and x86 can
build them just fine, and it's useful to have the int128 routines
available for certain applications. Add a CMake option to let us include
the int128 routines for architectures which would otherwise lack them.
Reviewed By: compnerd, MaskRay, phosek
Differential Revision: https://reviews.llvm.org/D145003
add_custom_target(builtins)
set_target_properties(builtins PROPERTIES FOLDER "Compiler-RT Misc")
+option(COMPILER_RT_ENABLE_SOFTWARE_INT128
+ "Enable the int128 builtin routines for all targets."
+ OFF)
+
if (APPLE)
add_subdirectory(Darwin-excludes)
add_subdirectory(macho_embedded)
# For RISCV32, we must force enable int128 for compiling long
# double routines.
- if("${arch}" STREQUAL "riscv32")
+ if(COMPILER_RT_ENABLE_SOFTWARE_INT128 OR "${arch}" STREQUAL "riscv32")
list(APPEND BUILTIN_CFLAGS_${arch} -fforce-enable-int128)
endif()
string(REPLACE ";" " " BUILTINS_TEST_TARGET_CFLAGS "${BUILTINS_TEST_TARGET_CFLAGS}")
endif()
- if (${arch} STREQUAL "riscv32")
+ if (COMPILER_RT_ENABLE_SOFTWARE_INT128 OR ${arch} STREQUAL "riscv32")
list(APPEND BUILTINS_TEST_TARGET_CFLAGS -fforce-enable-int128)
string(REPLACE ";" " " BUILTINS_TEST_TARGET_CFLAGS "${BUILTINS_TEST_TARGET_CFLAGS}")
endif()