This is a non-trivial problem. We need a migration path that will move
the defaults *away* from the FPA word ordering of floating point values,
but at the same time will not cause carnage for existing users who are
just upgrading. The problem is made doubly difficult by the fact that
gcc and binutils are not released in lock-step, so we can't assume a
particular version of GAS from within GCC.
The current attributes stored in the ELF header are (IMO) just broken:
1) They're incompatible with the EABI
2) They don't accurately reflect the contents of objects (you can mark
the object one way, but then put different data in the object itself and
normally the assembler has no way of verifying this).
3) They can't represent that an object has NO floating point content at
all (and is therefore compatible with soft- and hard-float ABIs).
4) They are describing the wrong thing anyway. What's really important
is the ABI variant in use, not the particular instructions.
So one option would be to just remove the checking entirely until we can
come up with a more robust solution -- it's then caveat emptor for those
developing with GCC, but that's probably less of a nightmare than having
legitimate objects that the linker spuriously rejects (most real users
of GCC only have one type of target at any one time).