From: 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 23:19:13 +0100 [thread overview]
Message-ID: <20180725231913.1acb1477@symphony.aura-online.co.uk> (raw)
In-Reply-To: <20180725003416.49416d46@sf>
[-- Attachment #1: Type: text/plain, Size: 5054 bytes --]
On Wed, 25 Jul 2018 00:34:16 +0100
Sergei Trofimovich <slyfox@gentoo.org> wrote:
> 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]
I had intended for most of the information to go into the news item but
I guess this commit message is the best place for additional background
information that may not concern the users so I'll beef it up a bit.
> 1. This changelog is not clear if arm-unknown-linux-gnueabi will
> change meaning in this commit.
Agreed, the wording could be clearer, I will improve it. I was also
partly wrong because although tc-is-softfloat did consider
arm-unknown-linux-gnueabi to be hardfloat, toolchain.eclass applies
the additional armv[67]* condition. The example you gave on IRC was
armv7a-unknown-linux-gnueabi so I will mention that instead.
> 2. Did Gentoo ever use arm-unknown-linux-gnueabi tuple? I don't see
> it in recent profile history.
This was wrong as per above but armv7a-unknown-linux-gnueabi was never
used either. However, crossdev expands arm to arm-unknown-linux-gnueabi.
17.0/musl also defaults to arm-unknown-linux-musleabi. I'm just trying
to cover all the bases. :)
> 3. What are existing toolchain tuples? All the ones people use?
Yes. Who knows what's out there? ;) I'll clarify that
> > ---
> > 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"
Good point. I was initially concerned about Clang but I guess we want
this to work the same way under Clang and apparently it does define the
same macros.
> > + 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.
Fair enough, it managed to confused mgorny. ;)
> 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.
Not sure about this. As I've said, I don't want to force users to
migrate. Would a warning be too annoying?
> 5. you don't use ${CFLAGS} here. I feel we should use them as people do occasionally
> override defaults.
I considered it but can we reliably get the flags for CTARGET?
> > + # 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.
There is also musleabihf and uclibceabihf. Would *eabihf be better?
> Also please link to description of what you think canonical hardfloat tuples are supposed to
> be. Upstreams do not agree on the definition.
I thought this was basically dictated by our profiles but okay.
> > + echo "no"
> > + else
> > + echo "yes"
> > + fi
> > + ;;
> > + *)
> > + echo "no" ;;
> > + esac
> > ;;
> > esac
> > }
> > --
> > 2.17.0
--
James Le Cuirot (chewi)
Gentoo Linux Developer
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 981 bytes --]
next prev parent reply other threads:[~2018-07-25 22:19 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
2018-07-25 22:19 ` James Le Cuirot [this message]
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=20180725231913.1acb1477@symphony.aura-online.co.uk \
--to=chewi@gentoo.org \
--cc=arm@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