mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 06:55:07 +00:00
wamr-compiler: Fix non-x86{_64} host builds (#3037)
The build system assumed sizeof (void *) == 8 as a host system running on a x86_64 architecture, x86 otherwise. However, this assumption is invalid for most other architectures out there, such as aarch64 or armv7l. This PR refers to the CMAKE_HOST_SYSTEM_PROCESSOR variable which, according to the documentation, typically refers to the output from "uname -m" for Unix-like systems.
This commit is contained in:
parent
5c8b8a17a6
commit
ade97ac3e1
|
@ -58,25 +58,38 @@ if (DEFINED WAMR_BUILD_AOT_FUNC_PREFIX)
|
|||
add_definitions(-DAOT_FUNC_PREFIX="${WAMR_BUILD_AOT_FUNC_PREFIX}")
|
||||
endif ()
|
||||
|
||||
# Set WAMR_BUILD_TARGET, currently values supported:
|
||||
# "X86_64", "AMD_64", "X86_32", "ARM_32", "MIPS_32", "XTENSA_32"
|
||||
if (NOT WAMR_BUILD_TARGET)
|
||||
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
# Build as X86_64 by default in 64-bit platform
|
||||
if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set (WAMR_BUILD_TARGET "X86_64")
|
||||
else ()
|
||||
# Build as X86_32 by default in 32-bit platform
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "i686")
|
||||
set (WAMR_BUILD_TARGET "X86_32")
|
||||
endif ()
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "amd64")
|
||||
set (WAMR_BUILD_TARGET "AMD_64")
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64"
|
||||
OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set (WAMR_BUILD_TARGET "AARCH64")
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm.*")
|
||||
message(STATUS "Assuming ${CMAKE_HOST_SYSTEM_PROCESSOR} as ARM_32")
|
||||
set (WAMR_BUILD_TARGET "ARM_32")
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "mips")
|
||||
set (WAMR_BUILD_TARGET "MIPS_32")
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "xtensa")
|
||||
set (WAMR_BUILD_TARGET "XTENSA_32")
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "riscv64")
|
||||
set (WAMR_BUILD_TARGET "RISCV64")
|
||||
elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "riscv")
|
||||
message(STATUS "Assuming ${CMAKE_HOST_SYSTEM_PROCESSOR} as RISCV32")
|
||||
set (WAMR_BUILD_TARGET "RISCV32")
|
||||
else ()
|
||||
message (FATAL_ERROR "Unsupported CMAKE_HOST_SYSTEM_PROCESSOR "
|
||||
"${CMAKE_HOST_SYSTEM_PROCESSOR}")
|
||||
endif()
|
||||
|
||||
if (WAMR_BUILD_PLATFORM STREQUAL "windows")
|
||||
if (("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "Win32"))
|
||||
set (WAMR_BUILD_TARGET "X86_32")
|
||||
endif()
|
||||
elseif (WAMR_BUILD_PLATFORM STREQUAL "darwin")
|
||||
if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set (WAMR_BUILD_TARGET "AARCH64")
|
||||
endif ()
|
||||
endif()
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
string(TOUPPER ${WAMR_BUILD_TARGET} WAMR_BUILD_TARGET)
|
||||
|
|
Loading…
Reference in New Issue
Block a user