From nobody Sun Sep 7 13:36:06 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 85FF9EB64DD for ; Tue, 18 Jul 2023 14:37:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232838AbjGROhZ (ORCPT ); Tue, 18 Jul 2023 10:37:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229512AbjGROhU (ORCPT ); Tue, 18 Jul 2023 10:37:20 -0400 Received: from angie.orcam.me.uk (angie.orcam.me.uk [IPv6:2001:4190:8020::34]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4ECD410A; Tue, 18 Jul 2023 07:37:19 -0700 (PDT) Received: by angie.orcam.me.uk (Postfix, from userid 500) id 6E14392009E; Tue, 18 Jul 2023 16:37:18 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id 676E392009D; Tue, 18 Jul 2023 15:37:18 +0100 (BST) Date: Tue, 18 Jul 2023 15:37:18 +0100 (BST) From: "Maciej W. Rozycki" To: Thomas Bogendoerfer cc: Jan-Benedict Glaw , Guillaume Tucker , Huacai Chen , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] MIPS: Fix CONFIG_CPU_DADDI_WORKAROUNDS `modules_install' regression In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove a build-time check for the presence of the GCC `-msym32' option. =20 This option has been there since GCC 4.1.0, which is below the minimum=20 required as at commit 805b2e1d427a ("kbuild: include Makefile.compiler=20 only when compiler is needed"), when an error message: arch/mips/Makefile:306: *** CONFIG_CPU_DADDI_WORKAROUNDS unsupported withou= t -msym32. Stop. started to trigger for the `modules_install' target with configurations=20 such as `decstation_64_defconfig' that set CONFIG_CPU_DADDI_WORKAROUNDS,=20 because said commit has made `cc-option-yn' an undefined function for=20 non-build targets. Reported-by: Jan-Benedict Glaw Signed-off-by: Maciej W. Rozycki Fixes: 805b2e1d427a ("kbuild: include Makefile.compiler only when compiler = is needed") Cc: stable@vger.kernel.org # v5.13+ Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- arch/mips/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) linux-mips-msym32-uncond.diff Index: linux-macro/arch/mips/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- linux-macro.orig/arch/mips/Makefile +++ linux-macro/arch/mips/Makefile @@ -299,8 +299,8 @@ ifdef CONFIG_64BIT endif endif =20 - ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy) - cflags-y +=3D -msym32 -DKBUILD_64BIT_SYM32 + ifeq ($(KBUILD_SYM32), y) + cflags-$(KBUILD_SYM32) +=3D -msym32 -DKBUILD_64BIT_SYM32 else ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y) $(error CONFIG_CPU_DADDI_WORKAROUNDS unsupported without -msym32) From nobody Sun Sep 7 13:36:06 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC25FEB64DD for ; Tue, 18 Jul 2023 14:37:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233079AbjGROh2 (ORCPT ); Tue, 18 Jul 2023 10:37:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232804AbjGROhY (ORCPT ); Tue, 18 Jul 2023 10:37:24 -0400 Received: from angie.orcam.me.uk (angie.orcam.me.uk [IPv6:2001:4190:8020::34]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D284A1719; Tue, 18 Jul 2023 07:37:23 -0700 (PDT) Received: by angie.orcam.me.uk (Postfix, from userid 500) id 3E23092009D; Tue, 18 Jul 2023 16:37:23 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id 39C7C92009C; Tue, 18 Jul 2023 15:37:23 +0100 (BST) Date: Tue, 18 Jul 2023 15:37:23 +0100 (BST) From: "Maciej W. Rozycki" To: Thomas Bogendoerfer cc: Jan-Benedict Glaw , Guillaume Tucker , Huacai Chen , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] MIPS: Only fiddle with CHECKFLAGS if `need-compiler' In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We have originally guarded fiddling with CHECKFLAGS in our arch Makefile=20 by checking for the CONFIG_MIPS variable, not set for targets such as=20 `distclean', etc. that neither include `.config' nor use the compiler. =20 Starting from commit 805b2e1d427a ("kbuild: include Makefile.compiler=20 only when compiler is needed") we have had a generic `need-compiler'=20 variable explicitly telling us if the compiler will be used and thus its=20 capabilities need to be checked and expressed in the form of compilation flags. If this variable is not set, then `make' functions such as=20 `cc-option' are undefined, causing all kinds of weirdness to happen if=20 we expect specific results to be returned, most recently: cc1: error: '-mloongson-mmi' must be used with '-mhard-float' messages with configurations such as `fuloong2e_defconfig' and the=20 `modules_install' target, which does include `.config' and yet does not=20 use the compiler. Replace the check for CONFIG_MIPS with one for `need-compiler' instead,=20 so as to prevent the compiler from being ever called for CHECKFLAGS when=20 not needed. Reported-by: Guillaume Tucker Closes: https://lore.kernel.org/r/85031c0c-d981-031e-8a50-bc4fad2ddcd8@coll= abora.com/ Signed-off-by: Maciej W. Rozycki Fixes: 805b2e1d427a ("kbuild: include Makefile.compiler only when compiler = is needed") Cc: stable@vger.kernel.org # v5.13+ Reported-by: "kernelci.org bot" --- arch/mips/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) linux-mips-checkflags-need-compiler.diff Index: linux-macro/arch/mips/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- linux-macro.orig/arch/mips/Makefile +++ linux-macro/arch/mips/Makefile @@ -341,7 +341,7 @@ KBUILD_CFLAGS +=3D -fno-asynchronous-unwin =20 KBUILD_LDFLAGS +=3D -m $(ld-emul) =20 -ifdef CONFIG_MIPS +ifdef need-compiler CHECKFLAGS +=3D $(shell $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -dM -E -= x c /dev/null | \ grep -E -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \ sed -e "s/^\#define /-D'/" -e "s/ /'=3D'/" -e "s/$$/'/" -e 's/\$$/&&/g') From nobody Sun Sep 7 13:36:06 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1BB7BEB64DA for ; Tue, 18 Jul 2023 14:37:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232797AbjGROhh (ORCPT ); Tue, 18 Jul 2023 10:37:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232884AbjGROhb (ORCPT ); Tue, 18 Jul 2023 10:37:31 -0400 Received: from angie.orcam.me.uk (angie.orcam.me.uk [78.133.224.34]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 928D6EC; Tue, 18 Jul 2023 07:37:28 -0700 (PDT) Received: by angie.orcam.me.uk (Postfix, from userid 500) id CE56592009D; Tue, 18 Jul 2023 16:37:27 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id CB4C492009C; Tue, 18 Jul 2023 15:37:27 +0100 (BST) Date: Tue, 18 Jul 2023 15:37:27 +0100 (BST) From: "Maciej W. Rozycki" To: Thomas Bogendoerfer cc: Jan-Benedict Glaw , Guillaume Tucker , Huacai Chen , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] Revert MIPS: Loongson: Fix build error when make modules_install In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Revert commit 531b3d1195d0 ("MIPS: Loongson: Fix build error when make=20 modules_install"), which made `-march=3Dloongson2e', `-march=3Dloongson2f',=20 and `-march=3Dloongson3a' compilation options probed for even though GCC=20 has supported them since 4.4.0, 4.4.0, and 4.6.0 respectively, which is=20 below our current minimum requirement of 5.1, in an attempt to work=20 around for the `cc-option' `make' function being undefined with `make'=20 targets that do not use the compiler. The workaround has now been made=20 obsolete, by querying the `need-compiler' variable instead so as to make=20 sure the compiler isn't called for non-build targets. Verified with `fuloong2e_defconfig' and the `modules_install' target. Signed-off-by: Maciej W. Rozycki --- arch/mips/Makefile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) Index: linux-macro/arch/mips/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- linux-macro.orig/arch/mips/Makefile +++ linux-macro/arch/mips/Makefile @@ -181,12 +181,16 @@ endif cflags-$(CONFIG_CAVIUM_CN63XXP1) +=3D -Wa,-mfix-cn63xxp1 cflags-$(CONFIG_CPU_BMIPS) +=3D -march=3Dmips32 -Wa,-mips32 -Wa,--trap =20 -cflags-$(CONFIG_CPU_LOONGSON2E) +=3D $(call cc-option,-march=3Dloongson2e)= -Wa,--trap -cflags-$(CONFIG_CPU_LOONGSON2F) +=3D $(call cc-option,-march=3Dloongson2f)= -Wa,--trap -cflags-$(CONFIG_CPU_LOONGSON64) +=3D $(call cc-option,-march=3Dloongson3a,= -march=3Dmips64r2) -Wa,--trap +cflags-$(CONFIG_CPU_LOONGSON2E) +=3D -march=3Dloongson2e -Wa,--trap +cflags-$(CONFIG_CPU_LOONGSON2F) +=3D -march=3Dloongson2f -Wa,--trap # Some -march=3D flags enable MMI instructions, and GCC complains about th= at # support being enabled alongside -msoft-float. Thus explicitly disable MM= I. cflags-$(CONFIG_CPU_LOONGSON2EF) +=3D $(call cc-option,-mno-loongson-mmi) +ifdef CONFIG_CPU_LOONGSON64 +cflags-$(CONFIG_CPU_LOONGSON64) +=3D -Wa,--trap +cflags-$(CONFIG_CC_IS_GCC) +=3D -march=3Dloongson3a +cflags-$(CONFIG_CC_IS_CLANG) +=3D -march=3Dmips64r2 +endif cflags-$(CONFIG_CPU_LOONGSON64) +=3D $(call cc-option,-mno-loongson-mmi) =20 cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) +=3D $(call cc-option,-mfix-r4000,)