> On 11 Sep 2020, at 11:45, Jan Beulich <jbeul...@suse.com> wrote:
>
> 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 <jgr...@amazon.com>
> Signed-off-by: Jan Beulich <jbeul...@suse.com>
Reviewed-by: Bertrand Marquis <bertrand.marq...@arm.com>
> ---
> v2: Title and description redone.
>
> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -12,6 +12,7 @@ CFLAGS-$(CONFIG_ARM_32) += -mcpu=cortex-
>
> 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)
>