[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.2601031930080.14570@angie.orcam.me.uk>
Date: Sat, 3 Jan 2026 20:36:46 +0000 (GMT)
From: "Maciej W. Rozycki" <macro@...am.me.uk>
To: Thomas Weißschuh <thomas.weissschuh@...utronix.de>
cc: Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
linux-mips@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] MIPS: Implement ARCH_HAS_CC_CAN_LINK
On Fri, 2 Jan 2026, Thomas Weißschuh wrote:
> > There are no `-m32'/`-m64' options with MIPS GCC; where did you get them
> > from and how did you verify your change? Did you mean `-mabi=...' by any
> > chance?
>
> Yes indeed. Not sure how that happened, I do have a correct version in
> another branch... Thanks for spotting this.
Great!
> > Also does the n32 ABI have to be factored in, since IIUC this
> > stuff is about user programs?
>
> It can be added, but I don't think it makes much sense.
> It would only be used if CONFIG_MIPS32_N32=y (which is non-default) and if
> the toolchain which has no n64 libc, but does have a n32 libc.
> This seems unlikely to me, but let me know if I am mistaken.
My observation over the years has been that n32 has become the industry
standard for 64-bit MIPS configurations; it's the default arrangement too
for the GNU compiler for `mips64*-*-linux-gnu' targets in the absence of
explicit `--with-abi=64' `configure' option, and no multilib support may
have been enabled in the compiler (which is not required to build Linux,
as 64-bit MIPS GCC and binutils are always able to produce code for all
the ABIs regardless).
I've always been an n64 ABI advocate and I used to build pure-n64 64-bit
environments, but I appreciate that it makes sense for an embedded target
to use n32 instead, as a lot of code and data space is wasted for the
handling of 64-bit pointers the upper 33 bits of which may never hold
anything but zero in many deployments. Which is also why `-msym32' is
used to build Linux where the upper 33 bits of immediate kernel addresses
are known to always hold all-ones.
It's not clear to me offhand how the infrastructure concerned here is
used, but it may make sense to default to either NewABI and resort to the
other if the default turns out unsupported in a given environment. This
for a change I cannot decide on based on information I've gathered so far.
Maciej
Powered by blists - more mailing lists