[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] xen/arm64: force gcc 10+ to always inline generic atomics helpers

commit 5d45ecabe3c0b2097df623ab7b471f8915cfdde6
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Fri Sep 11 12:45:33 2020 +0200
Commit:     Julien Grall <jgrall@xxxxxxxxxx>
CommitDate: Fri Sep 11 13:36:27 2020 +0100

    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 <jgrall@xxxxxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx>
 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)
generated by git-patchbot for /home/xen/git/xen.git#staging



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.