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$\
next prev parent 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).