Skip to content

Commit a72c4a3

Browse files
scivisionViralBShah
authored andcommitted
CMake fix for 32-bit x86
1 parent 274dc4d commit a72c4a3

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

CMakeLists.txt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,21 @@ add_library("${PROJECT_NAME}")
1717
set(OPENLIBM_ARCH_FOLDER ${CMAKE_SYSTEM_PROCESSOR})
1818
string(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()
2231
elseif(OPENLIBM_ARCH_FOLDER STREQUAL "arm64" OR OPENLIBM_ARCH_FOLDER STREQUAL "aarch64")
2332
set(OPENLIBM_ARCH_FOLDER "aarch64")
2433
elseif(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")
2835
elseif(OPENLIBM_ARCH_FOLDER STREQUAL "powerpc")
2936
set(OPENLIBM_ARCH_FOLDER "powerpc")
3037
elseif(OPENLIBM_ARCH_FOLDER STREQUAL "riscv64")

0 commit comments

Comments
 (0)