Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# 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/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_posix_64, target native_posix 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_posix, target native_posix_64 instead.\n"
      "Otherwise, be sure to define CONFIG_64BIT appropriately.\n"
    )
  endif()
endif ()