From: "Maciej W. Rozycki" <macro@orcam.me.uk>
To: YunQiang Su <syq@debian.org>
Cc: Richard Sandiford <richard.sandiford@arm.com>,
Nick Clifton <nickc@redhat.com>,
YunQiang Su <yunqiang.su@cipunited.com>,
binutils@sourceware.org, xry111@xry111.site,
jiaxun.yang@flygoat.com
Subject: Re: [PATCH v4 1/2] MIPS: support mips*64 as CPU and gnuabi64 as ABI
Date: Mon, 31 Jul 2023 11:05:31 +0100 (BST) [thread overview]
Message-ID: <alpine.DEB.2.21.2307211945170.17594@angie.orcam.me.uk> (raw)
In-Reply-To: <CAKcpw6X1K6F4RSTdY0mcU5imQMTOSQ_eAeMW8g9StTpFdj-0Yg@mail.gmail.com>
On Fri, 21 Jul 2023, YunQiang Su wrote:
> Debian, as a *REAL* OS, instead of anything you are imagining, is *USING* it.
> I don't agree that you make any "features" heavenly.
> If so, we cannot fix any bug.
Sometimes bugs have to live forever if the removal would cause more harm
than keeping them. So we best don't introduce them in the first place.
Of course a human beeings we are all bound to make mistakes, but this is
the very reason we have come up with thorough peer reviews: to catch any
mistakes early on, before they cause actual harm. Some will escape
regardless, but we need to try hard and prevent that from happening
rather than being lax.
The use of `mipsisa64-*-*' triplets for o32 ABI configurations wasn't a
bug though, it was a design decision. Now making these triplets mean n32
after they meant something else for 20+ years seems like a bug to me.
> More and more software in the *REAL* world, use the CPU section (here mipsisa64)
> to determine the 64bit OS/env.
> Anyway, the *REAL* world is much more important the the world only in
> your *MIND*.
Personal insults are not going to help you with getting changes accepted,
as we're making decisions based on technical merits rather than opinions.
I don't think a fait accompli ("Debian does it") is a valid argument in a
technical review. It is just a statement of fact and we do not have to
accept the same solution while Debian is free to continue using it.
At the risk of repeating myself, you do need to justify your change
before it can be accepted, that is you have to provide technical arguments
to prove it to the reviewer that taking your change is the right thing to
do. You may certainly reuse the arguments that were given at the time the
choice was evaluated for Debian and if we find them convincing, we will
accept the change.
I don't think we have a document written down for submitting patches
specifically for binutils, but we have been broadly following the rules
for the GNU toolchain, as documented on pages for our sibling projects:
<https://gcc.gnu.org/contribute.html>,
<https://sourceware.org/gdb/wiki/ContributionChecklist>,
<https://sourceware.org/glibc/wiki/Contribution_checklist>.
Please familiarise yourself with these documents before posting further
changes and follow the patch submission guidelines set out there.
I'd expect you, now as a nominated MIPS GCC backend maintainer, to be
especially familiar with the first of these documents, the rules of which
you are expected not only to apply to your own changes, but to enforce
them for patches submitted by other people, whether by the general public
or your fellow employees. As far I can tell it wasn't regrettably the
case with the MIPS16e2 patchset I volunteered to properly review (having
been involved with the instruction set design and having implemented the
binutils side) and which offer was ignored.
And in any case you can do whatever you want in Debian as long as it's
within what the licence allows you to, but we do not necessarily have to
accept your changes. Ideally Debian developers would have asked us in
advance if an incompatible change they want to make locally would be
accepted, or actually would have submitted it so that it lands here first
(or is rejected, in which case they'd have a chance to find an alternative
solution).
I would have argued then you probably want `mips64isa64*-*-*' or suchlike
a triplet for your 64-bit ABI configuration, leaving `mipsisa64*-*-*' ones
for 32-bit ABI configurations (at least as far as the default choice is
concerned), as that would be consistent with our current `mips*-*-*' vs
`mips64*-*-*' naming scheme.
In that scheme for the machine part we have, in this order:
1. The base prefix: `mips'/`mips64' to tell 32-bit/64-bit configurations
apart.
2. An optional implementation specification, e.g. `vr4300', `r5900',
`isa32r2', etc., which sets the CPU default as with the `-march='
option.
3. An optional `el' endianness suffix to make the little endianness the
default rather than the big one.
So `mipstx39el-*-*' is a 32-bit configuration with the TX39 CPU chosen by
default and little endianness. Likewise `mips64r10000-*-*' is a 64-bit
big-endian one with the R10k default. Then `mipsocteon+-*-*' is a 32-bit
one with Octeon+, and for a 64-bit one then say `mips64octeon+-*-*'.
Why would you want to make it different for `isa64' then? Say
`mipsisa64-*-*' for a 32-bit configuration and then `mips64isa64-*-*' for
a 64-bit one. In fact it already works like this: you can use
`mips64isa64r6-linux-gnu' and `mips64isa64r6el-linux-gnu' for your Debian
system right away and get what you need, there's nothing to change.
We do have a couple of legacy aberrations from very old, pre-MIPS32 days,
most notably `mips-sgi-irix6', but I think there's no need to go back
there.
Of course not all configurations are valid, e.g. `mips64isa32-*-*' is
not, but neither is say `mips64tx39-*-*', so that's no news. And then
`mipsinteraptiv-mr2el-*-*' is broken due to the presence of the hyphen in
`mipsinteraptiv-mr2', which is an oversight of mine: we need to define an
`interaptiv_mr2' (or `interaptiv+mr2') alias to allow this configuration,
similarly to how say `74kf3_2' has been named, and remember not to use a
hyphen in any future CPU names.
There's really no need to break anything here, we've had it from time
immemorial.
I note however that `config.sub' hasn't been correctly updated for the
MIPS CPU names and consequently we have a random choice only that works
and other ones don't. In fact given the variability of our MIPS
configurations I fail to see why it doesn't just let it all through. I
have submitted a fix now.
Maciej
next prev parent reply other threads:[~2023-07-31 10:05 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-08 4:30 [PATCH 1/3] MIPS: Fix test failure with FPXX GCC YunQiang Su
2021-03-08 4:30 ` [PATCH 2/3] MIPS: default output r6 object if configured to r6 YunQiang Su
2023-02-23 11:11 ` [PATCH] MIPS: support specify isa level when configure YunQiang Su
2023-03-30 16:53 ` Richard Sandiford
2023-04-03 11:06 ` [PATCH v2] MIPS: the default output fellows triple and with-arch YunQiang Su
2023-04-03 12:40 ` Richard Sandiford
2023-04-10 7:01 ` YunQiang Su
2023-04-14 7:20 ` [PATCH v3] MIPS: the default output fellows triple YunQiang Su
2023-04-18 13:07 ` Richard Sandiford
2023-04-18 14:00 ` [PATCH v4 1/2] MIPS: support mips*64 as CPU and gnuabi64 as ABI YunQiang Su
2023-04-18 14:00 ` [PATCH v4 2/2] MIPS: default output r6 obj if the triple is r6 YunQiang Su
2023-04-19 19:03 ` Richard Sandiford
2023-04-20 13:31 ` [PATCH v5 1/2] MIPS: support mips*64 as CPU and gnuabi64 as ABI YunQiang Su
2023-04-20 13:31 ` [PATCH v5 2/2] MIPS: default output r6 obj if the triple is r6 YunQiang Su
2023-04-19 19:00 ` [PATCH v4 1/2] MIPS: support mips*64 as CPU and gnuabi64 as ABI Richard Sandiford
2023-07-21 10:00 ` Maciej W. Rozycki
2023-07-21 10:14 ` YunQiang Su
2023-07-21 11:54 ` Maciej W. Rozycki
2023-07-21 12:30 ` YunQiang Su
2023-07-21 14:30 ` Maciej W. Rozycki
2023-07-21 15:01 ` YunQiang Su
2023-07-22 7:18 ` Xi Ruoyao
2023-07-25 13:30 ` Nick Clifton
2023-07-25 14:00 ` YunQiang Su
2023-07-25 16:03 ` Maciej W. Rozycki
2023-07-31 10:05 ` Maciej W. Rozycki [this message]
2023-07-31 10:32 ` YunQiang Su
2023-08-01 22:52 ` Maciej W. Rozycki
2023-07-25 17:47 ` Andreas K. Huettel
2023-07-28 5:42 ` YunQiang Su
2023-07-25 17:41 ` Andreas K. Huettel
2021-03-08 4:30 ` [PATCH 3/3] MIPS: Fix testcase for MIPSr6 YunQiang Su
2021-03-19 5:47 ` 回复: [PATCH 1/3] MIPS: Fix test failure with FPXX GCC yunqiang.su
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=alpine.DEB.2.21.2307211945170.17594@angie.orcam.me.uk \
--to=macro@orcam.me.uk \
--cc=binutils@sourceware.org \
--cc=jiaxun.yang@flygoat.com \
--cc=nickc@redhat.com \
--cc=richard.sandiford@arm.com \
--cc=syq@debian.org \
--cc=xry111@xry111.site \
--cc=yunqiang.su@cipunited.com \
/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).