From f61c5d0ca729eda5e936b8aa2b45c4192e2f2b64 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 11 Sep 2020 12:45:33 +0200 Subject: [PATCH] xen/arm64: force gcc 10+ to always inline generic atomics helpers Recent versions of gcc (at least 10.x) will not inline generic atomics helpers by default. Instead they will expect the software to either link with libatomic.so or implement the helpers, which would result in undefined reference to `__aarch64_ldadd4_acq_rel' for us (not having any local implementation). To keep the previous behavior, force gcc to always inline the generic atomics helpers. Long term we probably want to avoid relying on gcc atomics helpers as this doesn't allow us to switch between LSE and LL/SC atomics. Suggested-by: Julien Grall Signed-off-by: Jan Beulich Reviewed-by: Julien Grall (cherry picked from commit 5d45ecabe3c0b2097df623ab7b471f8915cfdde6) --- xen/arch/arm/arch.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk index c8186f5828..11caec86ba 100644 --- a/xen/arch/arm/arch.mk +++ b/xen/arch/arm/arch.mk @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-a15 CFLAGS-$(CONFIG_ARM_64) += -mcpu=generic CFLAGS-$(CONFIG_ARM_64) += -mgeneral-regs-only # No fp registers etc +$(call cc-option-add,CFLAGS-$(CONFIG_ARM_64),CC,-mno-outline-atomics) ifneq ($(filter command line environment,$(origin CONFIG_EARLY_PRINTK)),) $(error You must use 'make menuconfig' to enable/disable early printk now) -- 2.39.5