-----邮件原件----- 发件人: Maciej W. Rozycki macro@orcam.me.uk 发送时间: 2021年3月29日 23:06 收件人: yunqiang.su@cipunited.com 抄送: 'YunQiang Su' wzssyqa@gmail.com; 'Thomas Bogendoerfer' tsbogend@alpha.franken.de; 'linux-mips' linux-mips@vger.kernel.org; 'Jiaxun Yang' jiaxun.yang@flygoat.com; 'Philippe Mathieu-Daudé' f4bug@amsat.org; stable@vger.kernel.org 主题: Re: 回复: [PATCH v7 RESEND] MIPS: force use FR=0 or FRE for FPXX binaries
On Mon, 22 Mar 2021, yunqiang.su@cipunited.com wrote:
I don't know why Google choose not to have their runtime support library (the Go library) as a dynamic shared object 20-something years on, but it comes at a price. So you either have to relink (recompile) all the
affected
applications like in the old days or find a feasible workaround.
I also have no idea why (even hate). While there do be some program languages created in recently years, prefer static link.
Hmm, lost wisdom, or an orchestrated effort? Or a false illusion that
since
we're virtually fully open source now, we can always rebuild the world?
Well,
indeed this is technically possible, but whether it is feasible is another
matter.
Your case serves as a counterexample.
As I noted in the discussion the use of FR=0 would be acceptable for FPXX binaries as far as I am concerned for R2 through R5, but not the FRE mode
for
R6.
There will no FPXX for r6. All of (if not mistake) R6 O32 is FP64. FRE here is only for compatible with pre-R6 objects.
That doesn't seem like a good choice to me.
While R6 programs are indeed best built as FP64, libraries are best built
as
FPXX, so that users can link or load with whatever binary modules they
have,
including pre-R6 ones. As much as we may dislike it sources will not
always
be available or rebuilding them may be beyond the capabilities of whoever has the binaries, so I think the system should be as permissive as
possible.
So you may end up with running code that is largely R6 (libraries), and
partly
pre-R6 (application code) that ends up linked as FPXX.
Yes. It is the situation we talk about R6 in early days. While after some talk, we decide to figure out pure R6 systems.
And I agree with your concern, since the Android is such an example: 64bit is R6, and 32bit is R2. So, the compatible of R2 object on R6 CPU is some important.
And the kernel has to support it in the best way possible too and avoid
slow
emulation where not necessary e.g. in R6 libm code used in the FPXX arrangement, which the FRE mode will inevitably lead to.
Yes.
Maciej