From f0eb7ebc830547e3fbd9f595d5e9149603fe169f Mon Sep 17 00:00:00 2001 From: Lauren Murphy Date: Mon, 27 Jan 2025 17:28:55 -0800 Subject: [PATCH] llext: arc: enforce bitness match Enforces bitness match of ARC compilers and linkers invoked building LLEXT apps by inheriting -mcpu flag from Zephyr. The ARC toolchain becomes confused without the -mcpu flag. On qemu_hs5x we see GCC select elf32-littlearc64 for linking an object previously compiled as elf64-littlearc64. Fixes #80949 Signed-off-by: Lauren Murphy --- cmake/compiler/gcc/target_arc.cmake | 4 ++++ tests/subsys/llext/CMakeLists.txt | 1 + 2 files changed, 5 insertions(+) diff --git a/cmake/compiler/gcc/target_arc.cmake b/cmake/compiler/gcc/target_arc.cmake index 60a516272bb..7d580e81e8f 100644 --- a/cmake/compiler/gcc/target_arc.cmake +++ b/cmake/compiler/gcc/target_arc.cmake @@ -18,5 +18,9 @@ set(LLEXT_REMOVE_FLAGS -Os ) +set(LLEXT_APPEND_FLAGS + -mcpu=${GCC_ARC_TUNED_CPU} # Force compiler and linker match +) + list(APPEND TOOLCHAIN_C_FLAGS -mcpu=${GCC_ARC_TUNED_CPU}) list(APPEND TOOLCHAIN_LD_FLAGS -mcpu=${GCC_ARC_TUNED_CPU}) diff --git a/tests/subsys/llext/CMakeLists.txt b/tests/subsys/llext/CMakeLists.txt index d221124a129..0c121b2852d 100644 --- a/tests/subsys/llext/CMakeLists.txt +++ b/tests/subsys/llext/CMakeLists.txt @@ -75,6 +75,7 @@ if (CONFIG_LLEXT_TYPE_ELF_RELOCATABLE AND NOT CONFIG_ARM AND NOT CONFIG_RISCV) TARGET pre_located_ext POST_BUILD COMMAND ${CMAKE_C_COMPILER} + ${LLEXT_APPEND_FLAGS} -Wl,-r -Wl,-Ttext=0xbada110c -nostdlib -nodefaultlibs -nostartfiles $ -o ${pre_located_file} )