Thread (7 messages) 7 messages, 3 authors, 2021-03-03

Re: [PATCH v4] MIPS: introduce config option to force use FR=0 for FPXX binary

From: "Maciej W. Rozycki" <macro@orcam.me.uk>
Date: 2021-02-28 12:50:47
Also in: linux-mips

On Sun, 28 Feb 2021, Maciej W. Rozycki wrote:
 Nope, quoting include/elf/mips.h from GNU binutils:

  /* Not tagged or not using any ABIs affected by the differences.  */
  Val_GNU_MIPS_ABI_FP_ANY = 0,

which means that the object file *either* does not use FP *or* has not 
been tagged at all, as the GNU linker does not tell these two cases apart 
internally (yes, quite useless semantics, but there you go; I think the 
enumeration constant of 0 shouldn't have been chosen for any explicit tag, 
or possibly for double float instead, so this is an ABI design mistake).
 FAOD I think the original intent was to make non-tagged legacy objects 
link-compatible with any FP ABI under the assumption that the user knows 
what he's doing.  While that is acceptable, it shouldn't have implied the 
absence of FP code in such legacy objects.  Instead legacy properties 
should have been implied, that is double FP and likewise legacy NaN.  It 
would have been easier if a non-zero enumeration constant was assigned to 
Val_GNU_MIPS_ABI_FP_ANY, as generic GNU linker code considers the absence 
of a given tag equivalent to that tag being equal zero.  This still can be 
handled, but complicates matters.

  Maciej
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help