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