public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
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

  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).