public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Sergei Trofimovich <slyfox@gentoo.org>
To: James Le Cuirot <chewi@gentoo.org>
Cc: gentoo-dev@lists.gentoo.org, arm@gentoo.org
Subject: Re: [gentoo-dev] [arm17] [PATCH] toolchain-funcs.eclass: Update tc-is-softfloat for new ARM triplets
Date: Wed, 25 Jul 2018 00:34:16 +0100	[thread overview]
Message-ID: <20180725003416.49416d46@sf> (raw)
In-Reply-To: <20180724230928.30078-1-chewi@gentoo.org>

On Wed, 25 Jul 2018 00:09:28 +0100
James Le Cuirot <chewi@gentoo.org> wrote:

> The triplet will change from armv7a-hardfloat-linux-gnueabi to
> armv7a-unknown-linux-gnueabihf or similar. The function already
> treated the latter as hardfloat but ambiguous triplets such as
> arm-unknown-linux-gnueabi will change from hardfloat to softfloat in
> line with most everyone else. However, we will now check existing
> toolchains to avoid breaking existing systems, if possible.

[+arm@ CC]

1. This changelog is not clear if arm-unknown-linux-gnueabi will change
meaning in this commit.
2. Did Gentoo ever use arm-unknown-linux-gnueabi tuple? I don't see
it in recent profile history.
3. What are existing toolchain tuples? All the ones people use?

> ---
>  eclass/toolchain-funcs.eclass | 39 ++++++++++++++++++++++++++++-------
>  1 file changed, 32 insertions(+), 7 deletions(-)
> 
> diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
> index cea8949b45d7..f484fffc2664 100644
> --- a/eclass/toolchain-funcs.eclass
> +++ b/eclass/toolchain-funcs.eclass
> @@ -204,13 +204,38 @@ tc-is-softfloat() {
>  		bfin*|h8300*)
>  			echo "only" ;;
>  		*)
> -			if [[ ${CTARGET//_/-} == *-softfloat-* ]] ; then
> -				echo "yes"
> -			elif [[ ${CTARGET//_/-} == *-softfp-* ]] ; then
> -				echo "softfp"
> -			else
> -				echo "no"
> -			fi
> +			case ${CTARGET//_/-} in
> +				*-softfloat-*)
> +					echo "yes" ;;
> +				*-softfp-*)
> +					echo "softfp" ;;
> +				arm*)
> +					# arm-unknown-linux-gnueabi is ambiguous. We used to
> +					# treat it as hardfloat but we now treat it as
> +					# softfloat like most everyone else. However, we
> +					# check existing toolchains to avoid breaking
> +					# existing systems, if possible.
> +					if type -P ${CTARGET}-cpp >/dev/null; then

I believe correct way to get cpp for target is
    "$(tc-getCPP ${CTARGET}) -E"

> +						if ${CTARGET}-cpp -E - <<< __ARM_PCS_VFP 2>/dev/null | grep -q __ARM_PCS_VFP; then

4. This magic is hard to follow and reason about.
I suggest moving out autodetection of current setup into another helper.
Bonus point for detection of mismatch of actual vs. intended state.

Then we could start warning users about the fact of inconsistency and point
to migration procedure. And we could have cleaner ${CTARGET} matches against
what Gentoo expects.

5. you don't use ${CFLAGS} here. I feel we should use them as people do occasionally
override defaults.

> +							# Confusingly __SOFTFP__ is defined only
> +							# when -mfloat-abi is soft, not softfp.
> +							if ${CTARGET}-cpp -E - <<< __SOFTFP__ 2>/dev/null | grep -q __SOFTFP__; then
> +								echo "softfp"
> +							else
> +								echo "yes"
> +							fi
> +						else
> +							echo "no"
> +						fi
> +					elif [[ ${CTARGET} == *-hardfloat-* || ${CTARGET} == *hf ]]; then

I suggest using *-gnueabihf. I don't think anything more generic is recognized by toolchains
as a hardfloat target.

Also please link to description of what you think canonical hardfloat tuples are supposed to
be. Upstreams do not agree on the definition.

> +						echo "no"
> +					else
> +						echo "yes"
> +					fi
> +					;;
> +				*)
> +					echo "no" ;;
> +			esac
>  			;;
>  	esac
>  }
> -- 
> 2.17.0
> 
> 


-- 

  Sergei


  reply	other threads:[~2018-07-24 23:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-24 23:09 [gentoo-dev] [arm17] [PATCH] toolchain-funcs.eclass: Update tc-is-softfloat for new ARM triplets James Le Cuirot
2018-07-24 23:34 ` Sergei Trofimovich [this message]
2018-07-25 22:19   ` James Le Cuirot
2018-07-26  7:13     ` Sergei Trofimovich
2018-07-25  5:03 ` Michał Górny
2018-07-25  9:46   ` James Le Cuirot

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=20180725003416.49416d46@sf \
    --to=slyfox@gentoo.org \
    --cc=arm@gentoo.org \
    --cc=chewi@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /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