Linux-MIPS Archive on lore.kernel.org
 help / color / Atom feed
From: "Maciej W. Rozycki" <macro@orcam.me.uk>
To: YunQiang Su <wzssyqa@gmail.com>
Cc: "Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"YunQiang Su" <yunqiang.su@cipunited.com>,
	linux-mips <linux-mips@vger.kernel.org>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	stable@vger.kernel.org
Subject: Re: [PATCH v7 RESEND] MIPS: force use FR=0 or FRE for FPXX binaries
Date: Fri, 19 Mar 2021 15:31:52 +0100 (CET)
Message-ID: <alpine.DEB.2.21.2103191500040.21463@angie.orcam.me.uk> (raw)
In-Reply-To: <CAKcpw6UwYXYMCGw1C+nrRQLcqouxXCgdkDLZfK4fNFz+nVwZiQ@mail.gmail.com>

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

  parent reply index

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-12 10:48 YunQiang Su
2021-03-15 14:58 ` Thomas Bogendoerfer
2021-03-17 23:15   ` Maciej W. Rozycki
2021-03-19  1:38     ` YunQiang Su
2021-03-19  5:07       ` Zhou Yanjie
2021-03-19 14:31       ` Maciej W. Rozycki [this message]
2021-03-22  0:55         ` 回复: " yunqiang.su
2021-03-29 15:05           ` Maciej W. Rozycki
2021-03-30  3:24             ` 回复: " yunqiang.su
2021-03-19  1:31   ` YunQiang Su
2021-03-19 14:48     ` Maciej W. Rozycki

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.2103191500040.21463@angie.orcam.me.uk \
    --to=macro@orcam.me.uk \
    --cc=f4bug@amsat.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=linux-mips@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=wzssyqa@gmail.com \
    --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

Linux-MIPS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-mips/0 linux-mips/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-mips linux-mips/ https://lore.kernel.org/linux-mips \
		linux-mips@vger.kernel.org
	public-inbox-index linux-mips

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mips


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git