Re: [PATCH v7 RESEND] MIPS: force use FR=0 or FRE for FPXX binaries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

 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.

  Maciej



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux