public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Lulu Cheng <chenglulu@loongson.cn>
To: Xi Ruoyao <xry111@xry111.site>, gcc-patches@gcc.gnu.org
Cc: WANG Xuerui <i@xen0n.name>, Chenghua Xu <xuchenghua@loongson.cn>,
	"yangyujie@loongson.cn" <yangyujie@loongson.cn>
Subject: Re: [PATCH] LoongArch: Fix multiarch tuple canonization
Date: Tue, 14 Feb 2023 11:32:00 +0800	[thread overview]
Message-ID: <6b00fcca-6b8a-43a3-cc30-069f1d945408@loongson.cn> (raw)
In-Reply-To: <20230213103853.502212-1-xry111@xry111.site>

add yangyujie.

在 2023/2/13 下午6:38, Xi Ruoyao 写道:
> Multiarch tuple will be coded in file or directory names in
> multiarch-aware distros, so one ABI should have only one multiarch
> tuple.  For example, "--target=loongarch64-linux-gnu --with-abi=lp64s"
> and "--target=loongarch64-linux-gnusf" should both set multiarch tuple
> to "loongarch64-linux-gnusf".  Before this commit,
> "--target=loongarch64-linux-gnu --with-abi=lp64s --disable-multilib"
> will produce wrong result (loongarch64-linux-gnu).
>
> A recent LoongArch psABI revision mandates "loongarch64-linux-gnu" to be
> used for -mabi=lp64d (instead of "loongarch64-linux-gnuf64") for some
> non-technical reason [1].  Note that we cannot make
> "loongarch64-linux-gnuf64" an alias for "loongarch64-linux-gnu" because
> to implement such an alias, we must create thousands of symlinks in the
> distro and doing so would be completely unpractical.  This commit also
> aligns GCC with the revision.
>
> Tested by building cross compilers with --enable-multiarch and multiple
> combinations of --target=loongarch64-linux-gnu*, --with-abi=lp64{s,f,d},
> and --{enable,disable}-multilib; and run "xgcc --print-multiarch" then
> manually verify the result with eyesight.
>
> Ok for trunk and backport to releases/gcc-12?
>
> [1]: https://github.com/loongson/LoongArch-Documentation/pull/80
>
> gcc/ChangeLog:
>
> 	* config.gcc (triplet_abi): Set its value based on $with_abi,
> 	instead of $target.
> 	(la_canonical_triplet): Set it after $triplet_abi is set
> 	correctly.
> 	* config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
> 	multiarch tuple for lp64d "loongarch64-linux-gnu" (without
> 	"f64" suffix).
> ---
>   gcc/config.gcc               | 14 +++++++-------
>   gcc/config/loongarch/t-linux |  2 +-
>   2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index 067720ac795..c070e6ecd2e 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -4889,20 +4889,16 @@ case "${target}" in
>   		case ${target} in
>   		loongarch64-*-*-*f64)
>   			abi_pattern="lp64d"
> -			triplet_abi="f64"
>   			;;
>   		loongarch64-*-*-*f32)
>   			abi_pattern="lp64f"
> -			triplet_abi="f32"
>   			;;
>   		loongarch64-*-*-*sf)
>   			abi_pattern="lp64s"
> -			triplet_abi="sf"
>   			;;
>   		loongarch64-*-*-*)
>   			abi_pattern="lp64[dfs]"
>   			abi_default="lp64d"
> -			triplet_abi=""
>   			;;
>   		*)
>   			echo "Unsupported target ${target}." 1>&2
> @@ -4923,9 +4919,6 @@ case "${target}" in
>   			  ;;
>   		esac
>   
> -		la_canonical_triplet="loongarch64-${triplet_os}${triplet_abi}"
> -
> -
>   		# Perform initial sanity checks on --with-* options.
>   		case ${with_arch} in
>   		"" | loongarch64 | la464) ;; # OK, append here.
> @@ -4996,6 +4989,13 @@ case "${target}" in
>   			;;
>   		esac
>   
> +		case ${with_abi} in
> +		  "lp64d") triplet_abi="";;
> +		  "lp64f") triplet_abi="f32";;
> +		  "lp64s") triplet_abi="sf";;
> +		esac
> +		la_canonical_triplet="loongarch64-${triplet_os}${triplet_abi}"
> +
>   		# Set default value for with_abiext (internal)
>   		case ${with_abiext} in
>   		"")
> diff --git a/gcc/config/loongarch/t-linux b/gcc/config/loongarch/t-linux
> index 131c45fdced..e40da179203 100644
> --- a/gcc/config/loongarch/t-linux
> +++ b/gcc/config/loongarch/t-linux
> @@ -40,7 +40,7 @@ ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)
>   
>       MULTILIB_OSDIRNAMES = \
>         mabi.lp64d=../lib64$\
> -      $(call if_multiarch,:loongarch64-linux-gnuf64)
> +      $(call if_multiarch,:loongarch64-linux-gnu)
>   
>       MULTILIB_OSDIRNAMES += \
>         mabi.lp64f=../lib64/f32$\


  reply	other threads:[~2023-02-14  3:32 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-13 10:38 Xi Ruoyao
2023-02-14  3:32 ` Lulu Cheng [this message]
2023-02-15  9:32   ` Yujie Yang
2023-02-15 10:42 ` WANG Xuerui
2023-02-17  1:41   ` Lulu Cheng
2023-02-18  8:59     ` [pushed][PATCH] " Lulu Cheng

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=6b00fcca-6b8a-43a3-cc30-069f1d945408@loongson.cn \
    --to=chenglulu@loongson.cn \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=i@xen0n.name \
    --cc=xry111@xry111.site \
    --cc=xuchenghua@loongson.cn \
    --cc=yangyujie@loongson.cn \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).