From 66a202325a98a48013bad70de29d88f733ce5903 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 29 Feb 2024 22:56:41 +0100 Subject: [PATCH] boot/shim: force arm mode instead of Thumb mode Use OPTIMIZATIONS parameter to pass -marm to fix the following build failure in Thumb mode: /tmp/ccEjPM4h.s:941: Error: selected processor does not support `mrc p15,0,r2,c9,c13,0' in Thumb mode CFLAGS can't be overridden as it is defined as: CFLAGS = $(FEATUREFLAGS) \ $(OPTIMIZATIONS) \ $(WARNFLAGS) \ $(if $(findstring clang,$(CC)),$(CLANG_WARNINGS)) \ $(ARCH_CFLAGS) \ $(WERRFLAGS) \ $(INCLUDES) \ $(DEFINES) Fixes: - http://autobuild.buildroot.org/results/580156f89cfd72122fef07aa2fe37b4fdd4c316b - http://autobuild.buildroot.org/results/8980c0f422516c7263d8d0c9cc6123f30c4b7ee4 Signed-off-by: Fabrice Fontaine Signed-off-by: Peter Korsgaard --- boot/shim/shim.mk | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/boot/shim/shim.mk b/boot/shim/shim.mk index 19b11f4086..ae57677320 100644 --- a/boot/shim/shim.mk +++ b/boot/shim/shim.mk @@ -13,10 +13,19 @@ SHIM_CPE_ID_VENDOR = redhat SHIM_INSTALL_TARGET = NO SHIM_INSTALL_IMAGES = YES +SHIM_CFLAGS = $(TARGET_CFLAGS) SHIM_MAKE_OPTS = \ ARCH="$(GNU_EFI_PLATFORM)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ - DASHJ="-j$(PARALLEL_JOBS)" + DASHJ="-j$(PARALLEL_JOBS)" \ + OPTIMIZATIONS="$(SHIM_CFLAGS)" + +# shim has some assembly function that is not present in Thumb mode: +# Error: selected processor does not support `mrc p15,0,r2,c9,c13,0' in Thumb mode +# so, we desactivate Thumb mode +ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y) +SHIM_CFLAGS += -marm +endif define SHIM_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(SHIM_MAKE_OPTS)