[PATCH 00/11] [2nd resend] arm: Remove FPA support from gas/binutils
Richard Earnshaw (lists)
Richard.Earnshaw@arm.com
Thu Jun 6 10:25:30 GMT 2024
On 06/06/2024 02:14, Alan Modra wrote:
> I didn't verify the exact commit, but I think this series is likely
> the culprit for the following fails:
> arm-elf +FAIL: simple FP constants
> arm-elf +FAIL: Tag_ABI_FP_16bit_format EABI attribute written for Arm alternative format.
> arm-elf +FAIL: Tag_ABI_FP_16bit_format written for IEEE float16 format.
> arm-elf +FAIL: Tag_ABI_FP_16bit_format EABI attribute not written when format not specified
> arm-elf +FAIL: bad .bss / .struct data allocation directives
> arm-nto +FAIL: simple FP constants
> arm-nto +FAIL: Tag_ABI_FP_16bit_format EABI attribute written for Arm alternative format.
> arm-nto +FAIL: Tag_ABI_FP_16bit_format written for IEEE float16 format.
> arm-nto +FAIL: Tag_ABI_FP_16bit_format EABI attribute not written when format not specified
> arm-nto +FAIL: bad .bss / .struct data allocation directives
>
Yes it will be this patch set; it's a consequence of it adding a
target-specific wrapper around the handling of floating-point data
directives (.float, .double, etc).
The original FPA extension for Arm used a different, incompatible,
floating-point data format from that used by the VFP extension[1] and
these ports fall back to FPA format if there hasn't been an explicit
option passed that says that VFP is in use. Since I didn't want the
tools to silently generate different code on an upgrade I chose to add a
wrapper that faulted any fp-data directive when we were in a mode that
would previously have treated the value in FPA format. These failing
tests are occurring because of that and because these ports were
defaulting back to FPA format.
The arm-elf port is on my kill list. That used an ABI that was
superseded 20 years ago now (give or take) by arm-eabi and really nobody
should be using it any more (at least, not with current tools). I'm
less sure about arm-nto (QNX Neutrino), looking through the logs I don't
see much in the way of port maintenance, but that could just be because
it didn't need any.
It's pretty easy to fix "simple FP constants" - I already did that for
arm-coff, and the float16 tests can also be easily skipped. The tricky
case might be the generic "bad .bss..." test as that has a general
target list pattern in the test itself and I don't know if you can also
have an exclusion list as well.
Anyway, I'll try to find some suitable fixes.
R.
[1] I think technically this difference only applies to types larger
than .float, but I chose to wrap all the fp-related directives for
consistency.
More information about the Binutils
mailing list