All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jiaxun Yang" <jiaxun.yang@flygoat.com>
To: "Nathan Chancellor" <nathan@kernel.org>
Cc: "Nick Desaulniers" <ndesaulniers@google.com>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"linux-mips@vger.kernel.org" <linux-mips@vger.kernel.org>,
	linux-kernel@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: [PATCH 1/2] MIPS: Loongson64: Clean up use of cc-ifversion
Date: Tue, 25 Jan 2022 21:19:48 +0000	[thread overview]
Message-ID: <525d4804-7cc4-49b7-9427-cb278c8e40e8@www.fastmail.com> (raw)
In-Reply-To: <Ye9Rk4y9Ck7Bg5pv@dev-arch.archlinux-ax161>



在2022年1月25日一月 上午1:25,Nathan Chancellor写道:
[...]
>
> So something like this (completely untested)?

Yep, tested with multiple GCC toolchains and it works :-)

Thanks.

>
> diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform
> index 3e660d6d3c2b..36ab2fe00835 100644
> --- a/arch/mips/loongson64/Platform
> +++ b/arch/mips/loongson64/Platform
> @@ -5,24 +5,9 @@
> 
>  cflags-$(CONFIG_CPU_LOONGSON64)	+= -Wa,--trap
> 
> -#
> -# binutils from v2.25 on and gcc starting from v4.9.0 treat 
> -march=loongson3a
> -# as MIPS64 R2; older versions as just R1.  This leaves the 
> possibility open
> -# that GCC might generate R2 code for -march=loongson3a which then is 
> rejected
> -# by GAS.  The cc-option can't probe for this behaviour so 
> -march=loongson3a
> -# can't easily be used safely within the kbuild framework.
> -#
> -ifeq ($(call cc-ifversion, -ge, 0409, y), y)
> -  ifeq ($(call ld-ifversion, -ge, 22500, y), y)
> -    cflags-$(CONFIG_CPU_LOONGSON64)  += \
> -      $(call cc-option,-march=loongson3a -U_MIPS_ISA 
> -D_MIPS_ISA=_MIPS_ISA_MIPS64)
> -  else
> -    cflags-$(CONFIG_CPU_LOONGSON64)  += \
> -      $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA 
> -D_MIPS_ISA=_MIPS_ISA_MIPS64)
> -  endif
> -else
> -    cflags-$(CONFIG_CPU_LOONGSON64)  += \
> -      $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA 
> -D_MIPS_ISA=_MIPS_ISA_MIPS64)
> +ifdef CONFIG_CPU_LOONGSON64
> +cflags-$(CONFIG_CC_IS_CLANG) += -march=mips64r2
> +cflags-$(CONFIG_CC_IS_GCC) += -march=loongson3a
>  endif
> 
>  # Some -march= flags enable MMI instructions, and GCC complains about that
>
>> >
>> > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
>> >
>> >> ---
>> >>  arch/mips/loongson64/Platform | 13 +++----------
>> >>  1 file changed, 3 insertions(+), 10 deletions(-)
>> >>
>> >> diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform
>> >> index 3e660d6d3c2b..981d3abc150e 100644
>> >> --- a/arch/mips/loongson64/Platform
>> >> +++ b/arch/mips/loongson64/Platform
>> >> @@ -12,17 +12,10 @@ cflags-$(CONFIG_CPU_LOONGSON64)     += -Wa,--trap
>> >>  # by GAS.  The cc-option can't probe for this behaviour so -march=loongson3a
>> >>  # can't easily be used safely within the kbuild framework.
>> >>  #
>> >> -ifeq ($(call cc-ifversion, -ge, 0409, y), y)
>> >> -  ifeq ($(call ld-ifversion, -ge, 22500, y), y)
>> >> -    cflags-$(CONFIG_CPU_LOONGSON64)  += \
>> >> -      $(call cc-option,-march=loongson3a -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
>> >> -  else
>> >> -    cflags-$(CONFIG_CPU_LOONGSON64)  += \
>> >> -      $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
>> >> -  endif
>> >> +ifeq ($(CONFIG_CC_IS_GCC)$(call ld-ifversion, -ge, 22500, y), yy)
>> >> +  cflags-$(CONFIG_CPU_LOONGSON64) += -march=loongson3a -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64
>> >>  else
>> >> -    cflags-$(CONFIG_CPU_LOONGSON64)  += \
>> >> -      $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
>> >> +  cflags-$(CONFIG_CPU_LOONGSON64) += -march=mips64r2
>> >>  endif
>> >>
>> >>  # Some -march= flags enable MMI instructions, and GCC complains about that
>> >>
>> >> base-commit: 2c271fe77d52a0555161926c232cd5bc07178b39
>> >> --
>> >> 2.34.1
>> >>
>> >
>> >
>> > -- 
>> > Thanks,
>> > ~Nick Desaulniers
>> 
>> -- 
>> - Jiaxun

-- 
- Jiaxun

      reply	other threads:[~2022-01-25 21:20 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-20 21:40 [PATCH 1/2] MIPS: Loongson64: Clean up use of cc-ifversion Nathan Chancellor
2022-01-20 21:40 ` [PATCH 2/2] MIPS: Loongson64: Wrap -mno-branch-likely with cc-option Nathan Chancellor
2022-01-24 20:40   ` Nick Desaulniers
2022-01-24 22:37     ` Nathan Chancellor
2022-01-24 22:49       ` Nick Desaulniers
2022-01-24 23:09         ` Nathan Chancellor
2022-01-24 20:31 ` [PATCH 1/2] MIPS: Loongson64: Clean up use of cc-ifversion Nick Desaulniers
2022-01-25  0:03   ` Jiaxun Yang
2022-01-25  1:25     ` Nathan Chancellor
2022-01-25 21:19       ` Jiaxun Yang [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=525d4804-7cc4-49b7-9427-cb278c8e40e8@www.fastmail.com \
    --to=jiaxun.yang@flygoat.com \
    --cc=chenhuacai@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=tsbogend@alpha.franken.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.