diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake index d92bc0e71fa1a..cf2715e4cc0f0 100644 --- a/compiler-rt/cmake/base-config-ix.cmake +++ b/compiler-rt/cmake/base-config-ix.cmake @@ -213,7 +213,7 @@ macro(test_targets) if(COMPILER_RT_DEFAULT_TARGET_ONLY) add_default_target_arch(${COMPILER_RT_DEFAULT_TARGET_ARCH}) elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "i[2-6]86|x86|amd64") - if(NOT MSVC) + if(NOT MSVC AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD") test_target_arch(x86_64 "" "-m64") test_target_arch(i386 __i386__ "-m32") else() @@ -234,13 +234,29 @@ macro(test_targets) elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "powerpc64le|ppc64le") test_target_arch(powerpc64le "" "-m64") elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "powerpc") - test_target_arch(powerpc "" "-m32") - test_target_arch(powerpc64 "" "-m64") + if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD") + test_target_arch(powerpc "" "-m32") + test_target_arch(powerpc64 "" "-m64") + else() + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + test_target_arch(powerpc "" "-m32") + else() + test_target_arch(powerpc64 "" "-m64") + endif() + endif() elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "s390x") test_target_arch(s390x "" "") elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "sparc") - test_target_arch(sparc "" "-m32") - test_target_arch(sparcv9 "" "-m64") + if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD") + test_target_arch(sparc "" "-m32") + test_target_arch(sparcv9 "" "-m64") + else() + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + test_target_arch(sparc "" "-m32") + else() + test_target_arch(sparcv9 "" "-m64") + endif() + endif() elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mips") CHECK_SYMBOL_EXISTS (_MIPS_ARCH_MIPS32R6 "" COMPILER_RT_MIPS32R6) CHECK_SYMBOL_EXISTS (_MIPS_ARCH_MIPS64R6 "" COMPILER_RT_MIPS64R6)