UBUNTU: SAUCE: arm: Fix instruction set selection for GCC 11
BugLink: https://bugs.launchpad.net/bugs/1939308 GCC 11 on ARM now complains like the following when trying to determine if an arch is supported. Presumably because it enforces the default option which (in our case) is '--with-float=hard'? $ arm-linux-gnueabihf-gcc-11 -march=armv7-a -c -x c /dev/null cc1: error: ‘-mfloat-abi=hard’: selected architecture lacks an FPU Due to that, the kernel build system selects the wrong compiler options which throws errros like this: /tmp/ccrHfZPj.s: Assembler messages: /tmp/ccrHfZPj.s:116: Error: selected processor does not support `dmb ish' in ARM mode /tmp/ccrHfZPj.s:150: Error: selected processor does not support `isb ' in ARM mode /tmp/ccrHfZPj.s:160: Error: selected processor does not support `mrrc p15,1,r4,r5,c14' in ARM mode /tmp/ccrHfZPj.s:245: Error: selected processor does not support `dmb ish' in ARM mode /tmp/ccrHfZPj.s:503: Error: selected processor does not support `dmb ish' in ARM mode /tmp/ccrHfZPj.s:527: Error: selected processor does not support `dmb ish' in ARM mode /tmp/ccrHfZPj.s:698: Error: selected processor does not support `dmb ish' in ARM mode /tmp/ccrHfZPj.s:731: Error: selected processor does not support `isb ' in ARM mode Fix that by moving the option '-msoft-float' up before the 'arch-$(CONFIG_CPU_<foo>)' instruction selection macros. Signed-off-by: Juerg Haefliger <juergh@canonical.com> Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
This commit is contained in:
committed by
Paolo Pisati
parent
b3a4e9889c
commit
8c31039695
+4
-1
@@ -59,6 +59,9 @@ endif
|
||||
#
|
||||
KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra)
|
||||
|
||||
# Need -msoft-float for gcc 11 for the below instruction set selection
|
||||
KBUILD_CFLAGS += -msoft-float
|
||||
|
||||
# This selects which instruction set is used.
|
||||
arch-$(CONFIG_CPU_32v7M) :=-march=armv7-m
|
||||
arch-$(CONFIG_CPU_32v7) :=-march=armv7-a
|
||||
@@ -141,7 +144,7 @@ endif
|
||||
|
||||
# Need -Uarm for gcc < 3.x
|
||||
KBUILD_CPPFLAGS +=$(cpp-y)
|
||||
KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
|
||||
KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -Uarm
|
||||
KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) -Wa,$(arch-y) $(tune-y) -include asm/unified.h -msoft-float
|
||||
|
||||
CHECKFLAGS += -D__arm__
|
||||
|
||||
Reference in New Issue
Block a user