From: Greg Kroah-Hartman Date: Mon, 15 Nov 2021 12:59:38 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v5.4.160~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4efaed01560ff434cd8004752abdaae7a6dba8d;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: arm-9156-1-drop-cc-option-fallbacks-for-architecture-selection.patch --- diff --git a/queue-4.9/arm-9156-1-drop-cc-option-fallbacks-for-architecture-selection.patch b/queue-4.9/arm-9156-1-drop-cc-option-fallbacks-for-architecture-selection.patch new file mode 100644 index 00000000000..7a14004c0c0 --- /dev/null +++ b/queue-4.9/arm-9156-1-drop-cc-option-fallbacks-for-architecture-selection.patch @@ -0,0 +1,103 @@ +From 418ace9992a7647c446ed3186df40cf165b67298 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Sat, 6 Nov 2021 19:42:29 +0100 +Subject: ARM: 9156/1: drop cc-option fallbacks for architecture selection + +From: Arnd Bergmann + +commit 418ace9992a7647c446ed3186df40cf165b67298 upstream. + +Naresh and Antonio ran into a build failure with latest Debian +armhf compilers, with lots of output like + + tmp/ccY3nOAs.s:2215: Error: selected processor does not support `cpsid i' in ARM mode + +As it turns out, $(cc-option) fails early here when the FPU is not +selected before CPU architecture is selected, as the compiler +option check runs before enabling -msoft-float, which causes +a problem when testing a target architecture level without an FPU: + +cc1: error: '-mfloat-abi=hard': selected architecture lacks an FPU + +Passing e.g. -march=armv6k+fp in place of -march=armv6k would avoid this +issue, but the fallback logic is already broken because all supported +compilers (gcc-5 and higher) are much more recent than these options, +and building with -march=armv5t as a fallback no longer works. + +The best way forward that I see is to just remove all the checks, which +also has the nice side-effect of slightly improving the startup time for +'make'. + +The -mtune=marvell-f option was apparently never supported by any mainline +compiler, and the custom Codesourcery gcc build that did support is +now too old to build kernels, so just use -mtune=xscale unconditionally +for those. + +This should be safe to apply on all stable kernels, and will be required +in order to keep building them with gcc-11 and higher. + +Link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=996419 + +Reported-by: Antonio Terceiro +Reported-by: Naresh Kamboju +Reported-by: Sebastian Andrzej Siewior +Tested-by: Sebastian Reichel +Tested-by: Klaus Kudielka +Cc: Matthias Klose +Cc: stable@vger.kernel.org +Signed-off-by: Arnd Bergmann +Signed-off-by: Russell King (Oracle) +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/Makefile | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +--- a/arch/arm/Makefile ++++ b/arch/arm/Makefile +@@ -64,15 +64,15 @@ KBUILD_CFLAGS += $(call cc-option,-fno-i + # Note that GCC does not numerically define an architecture version + # macro, but instead defines a whole series of macros which makes + # testing for a specific architecture or later rather impossible. +-arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m +-arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a) +-arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) ++arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m ++arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a ++arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 -march=armv6 + # Only override the compiler option if ARMv6. The ARMv6K extensions are + # always available in ARMv7 + ifeq ($(CONFIG_CPU_32v6),y) +-arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k) ++arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 -march=armv6k + endif +-arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t) ++arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 -march=armv5te + arch-$(CONFIG_CPU_32v4T) =-D__LINUX_ARM_ARCH__=4 -march=armv4t + arch-$(CONFIG_CPU_32v4) =-D__LINUX_ARM_ARCH__=4 -march=armv4 + arch-$(CONFIG_CPU_32v3) =-D__LINUX_ARM_ARCH__=3 -march=armv3 +@@ -86,7 +86,7 @@ tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7t + tune-$(CONFIG_CPU_ARM740T) =-mtune=arm7tdmi + tune-$(CONFIG_CPU_ARM9TDMI) =-mtune=arm9tdmi + tune-$(CONFIG_CPU_ARM940T) =-mtune=arm9tdmi +-tune-$(CONFIG_CPU_ARM946E) =$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi) ++tune-$(CONFIG_CPU_ARM946E) =-mtune=arm9e + tune-$(CONFIG_CPU_ARM920T) =-mtune=arm9tdmi + tune-$(CONFIG_CPU_ARM922T) =-mtune=arm9tdmi + tune-$(CONFIG_CPU_ARM925T) =-mtune=arm9tdmi +@@ -94,11 +94,11 @@ tune-$(CONFIG_CPU_ARM926T) =-mtune=arm9t + tune-$(CONFIG_CPU_FA526) =-mtune=arm9tdmi + tune-$(CONFIG_CPU_SA110) =-mtune=strongarm110 + tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100 +-tune-$(CONFIG_CPU_XSCALE) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale +-tune-$(CONFIG_CPU_XSC3) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale +-tune-$(CONFIG_CPU_FEROCEON) =$(call cc-option,-mtune=marvell-f,-mtune=xscale) +-tune-$(CONFIG_CPU_V6) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) +-tune-$(CONFIG_CPU_V6K) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) ++tune-$(CONFIG_CPU_XSCALE) =-mtune=xscale ++tune-$(CONFIG_CPU_XSC3) =-mtune=xscale ++tune-$(CONFIG_CPU_FEROCEON) =-mtune=xscale ++tune-$(CONFIG_CPU_V6) =-mtune=arm1136j-s ++tune-$(CONFIG_CPU_V6K) =-mtune=arm1136j-s + + # Evaluate tune cc-option calls now + tune-y := $(tune-y) diff --git a/queue-4.9/series b/queue-4.9/series index 0bdea1a5245..50bc8b11c2d 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -152,3 +152,4 @@ llc-fix-out-of-bound-array-index-in-llc_sk_dev_hash.patch nfc-pn533-fix-double-free-when-pn533_fill_fragment_s.patch vsock-prevent-unnecessary-refcnt-inc-for-nonblocking.patch usb-chipidea-fix-interrupt-deadlock.patch +arm-9156-1-drop-cc-option-fallbacks-for-architecture-selection.patch