File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -17,14 +17,21 @@ add_library("${PROJECT_NAME}")
1717set (OPENLIBM_ARCH_FOLDER ${CMAKE_SYSTEM_PROCESSOR } )
1818string (TOLOWER "${OPENLIBM_ARCH_FOLDER} " OPENLIBM_ARCH_FOLDER)
1919
20- if (OPENLIBM_ARCH_FOLDER STREQUAL "amd64" OR OPENLIBM_ARCH_FOLDER STREQUAL "x86_64" )
21- set (OPENLIBM_ARCH_FOLDER "amd64" )
20+ # CMAKE_SYSTEM_PROCESSOR reflects the host instead of the selected MinGW target.
21+ # Use pointer size to disambiguate x86/x64.
22+ if (OPENLIBM_ARCH_FOLDER STREQUAL "x86_64" OR OPENLIBM_ARCH_FOLDER STREQUAL "amd64" OR
23+ OPENLIBM_ARCH_FOLDER STREQUAL "x86" OR OPENLIBM_ARCH_FOLDER STREQUAL "i686" )
24+ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
25+ set (OPENLIBM_ARCH_FOLDER "amd64" )
26+ elseif (CMAKE_SIZEOF_VOID_P EQUAL 4)
27+ set (OPENLIBM_ARCH_FOLDER "i387" )
28+ else ()
29+ message (FATAL_ERROR "Unsupported pointer size: ${CMAKE_SIZEOF_VOID_P } " )
30+ endif ()
2231elseif (OPENLIBM_ARCH_FOLDER STREQUAL "arm64" OR OPENLIBM_ARCH_FOLDER STREQUAL "aarch64" )
2332 set (OPENLIBM_ARCH_FOLDER "aarch64" )
2433elseif (OPENLIBM_ARCH_FOLDER STREQUAL "armv7-a" )
2534 set (OPENLIBM_ARCH_FOLDER "arm" )
26- elseif (OPENLIBM_ARCH_FOLDER STREQUAL "x86" OR OPENLIBM_ARCH_FOLDER STREQUAL "i686" )
27- set (OPENLIBM_ARCH_FOLDER "i387" )
2835elseif (OPENLIBM_ARCH_FOLDER STREQUAL "powerpc" )
2936 set (OPENLIBM_ARCH_FOLDER "powerpc" )
3037elseif (OPENLIBM_ARCH_FOLDER STREQUAL "riscv64" )
You can’t perform that action at this time.
0 commit comments