> -----邮件原件----- > 发件人: Maciej W. Rozycki <macro@xxxxxxxxxxx> > 发送时间: 2021年3月19日 22:32 > 收件人: YunQiang Su <wzssyqa@xxxxxxxxx> > 抄送: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>; YunQiang Su > <yunqiang.su@xxxxxxxxxxxxx>; linux-mips <linux-mips@xxxxxxxxxxxxxxx>; > Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>; Philippe Mathieu-Daudé > <f4bug@xxxxxxxxx>; stable@xxxxxxxxxxxxxxx > 主题: Re: [PATCH v7 RESEND] MIPS: force use FR=0 or FRE for FPXX binaries > > On Fri, 19 Mar 2021, YunQiang Su wrote: > > > The bad news is that (Google's) Go has no runtime. > > Dynamic shared objects (libraries) were invented in early 1990s for two > reasons: > > 1. To limit the use of virtual memory. Memory conservation may not be as > important nowadays in many applications where vast amounts of RAM are > available, though of course this does not apply everywhere, and still > it has to be weighed up whether any waste of resources is justified and > compensated by a gain elsewhere. > > 2. To make it easy to replace a piece of code shared among many programs, > so that you don't have to relink them all (or recompile if sources are > available) when say an issue is found or a feature is added that is > transparent to applications (for instance a new protocol or a better > algorithm). This still stands very much nowadays. > > People went through great efforts to support shared libraries, sacrificed > performance for it even back then when the computing power was much > lower than nowadays. Support was implemented in Linux for the a.out > binary format even, despite the need to go through horrible hoops to get a.out > shared libraries built. Some COFF environments were adapted for shared > library support too. > > 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. > 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. I will send a V8 to switch r6 back. > > Maciej