| From 779f578e9b202152d517d904976b48e248c66dd4 Mon Sep 17 00:00:00 2001 |
| From: Paul Burton <paul.burton@mips.com> |
| Date: Thu, 10 Oct 2019 18:54:03 +0000 |
| Subject: [PATCH] MIPS: Disable Loongson MMI instructions for kernel build |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| commit 2f2b4fd674cadd8c6b40eb629e140a14db4068fd upstream. |
| |
| GCC 9.x automatically enables support for Loongson MMI instructions when |
| using some -march= flags, and then errors out when -msoft-float is |
| specified with: |
| |
| cc1: error: ‘-mloongson-mmi’ must be used with ‘-mhard-float’ |
| |
| The kernel shouldn't be using these MMI instructions anyway, just as it |
| doesn't use floating point instructions. Explicitly disable them in |
| order to fix the build with GCC 9.x. |
| |
| Signed-off-by: Paul Burton <paul.burton@mips.com> |
| Fixes: 3702bba5eb4f ("MIPS: Loongson: Add GCC 4.4 support for Loongson2E") |
| Fixes: 6f7a251a259e ("MIPS: Loongson: Add basic Loongson 2F support") |
| Fixes: 5188129b8c9f ("MIPS: Loongson-3: Improve -march option and move it to Platform") |
| Cc: Huacai Chen <chenhc@lemote.com> |
| Cc: Jiaxun Yang <jiaxun.yang@flygoat.com> |
| Cc: stable@vger.kernel.org # v2.6.32+ |
| Cc: linux-mips@vger.kernel.org |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform |
| index c1a4d4dc4665..9f79908f5063 100644 |
| --- a/arch/mips/loongson64/Platform |
| +++ b/arch/mips/loongson64/Platform |
| @@ -66,6 +66,10 @@ else |
| $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) |
| endif |
| |
| +# Some -march= flags enable MMI instructions, and GCC complains about that |
| +# support being enabled alongside -msoft-float. Thus explicitly disable MMI. |
| +cflags-y += $(call cc-option,-mno-loongson-mmi) |
| + |
| # |
| # Loongson Machines' Support |
| # |
| diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile |
| index 7221df24cb23..38d005be3cc4 100644 |
| --- a/arch/mips/vdso/Makefile |
| +++ b/arch/mips/vdso/Makefile |
| @@ -9,6 +9,7 @@ ccflags-vdso := \ |
| $(filter -mmicromips,$(KBUILD_CFLAGS)) \ |
| $(filter -march=%,$(KBUILD_CFLAGS)) \ |
| $(filter -m%-float,$(KBUILD_CFLAGS)) \ |
| + $(filter -mno-loongson-%,$(KBUILD_CFLAGS)) \ |
| -D__VDSO__ |
| |
| ifdef CONFIG_CC_IS_CLANG |
| -- |
| 2.7.4 |
| |