zephyr/arch/posix/Linux.aarch64.cmake

35 lines
1.1 KiB
CMake

# SPDX-License-Identifier: Apache-2.0
# For Aarch64, multilib is not an actively pursued solution for most Linux
# distributions. Userspace is (generally) either 32-bit or 64-bit but not
# both.
# @Intent: Call a script to get userspace wordsize for comparison with CONFIG_64BIT
execute_process(
COMMAND
${PYTHON_EXECUTABLE}
${ZEPHYR_BASE}/scripts/build/user_wordsize.py
OUTPUT_VARIABLE
WORDSIZE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if (CONFIG_64BIT)
if (${WORDSIZE} STREQUAL "32")
message(FATAL_ERROR
"CONFIG_64BIT=y but this Aarch64 machine has a 32-bit userspace.\n"
"If you were targeting native_sim/native/64, target native_sim instead.\n"
"Otherwise, be sure to define CONFIG_64BIT appropriately.\n"
)
endif()
zephyr_compile_options(-fPIC)
else ()
if (${WORDSIZE} STREQUAL "64")
message(FATAL_ERROR
"CONFIG_64BIT=n but this Aarch64 machine has a 64-bit userspace.\n"
"If you were targeting native_sim, target native_sim/native/64 instead.\n"
"Otherwise, be sure to define CONFIG_64BIT appropriately.\n"
)
endif()
endif ()