Building for soft-float ColdFire produces an error in soft-fp:
In file included from ../sysdeps/ieee754/soft-fp/s_fmaf.c:42:
../soft-fp/single.h:85:3: error: 'packed' attribute ignored for field of type 'struct <anonymous>' [-Werror=attributes]
} bits __attribute__ ((packed));
^
While this error only appears in that particular case, this attribute
is in fact never useful, on any architecture. If you have
struct __attribute__ ((packed)) { ... } bits;
or
struct { ... } __attribute__ ((packed)) bits;
then the attribute affects the layout of the structure type. But with
the form used in this code
struct { ... } bits __attribute__ ((packed));
the field bits is being declared packed, but the layout of its type
has already been determined at that point. If on any platform the
layout of the sequence of bit-fields were wrong without the use of a
packed attribute, the attribute would need to be used via a definition
of _FP_STRUCT_LAYOUT, not in its present position.
So this patch removes the useless attribute to fix the build for
ColdFire soft-float. Tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by the patch.
* soft-fp/double.h (union _FP_UNION_D): Do not use attribute
packed on bits.
* soft-fp/extended.h (union _FP_UNION_E): Likewise.
* soft-fp/half.h (union _FP_UNION_H): Likewise.
* soft-fp/quad.h (union _FP_UNION_Q): Likewise.
* soft-fp/single.h (union _FP_UNION_S): Likewise.
This patch adds conversion routines required for _Float16 support in
AArch64.
These are one-step conversions to and from TImode and TFmode. We need
these on AArch64 regardless of presence of the ARMv8.2-A 16-bit
floating-point extensions.
In the patch, soft-fp/half.h is derived from soft-fp/single.h . The
conversion routines are derivatives of their respective SFmode
variants.
* soft-fp/extendhftf2.c: New.
* soft-fp/fixhfti.c: Likewise.
* soft-fp/fixunshfti.c: Likewise.
* soft-fp/floattihf.c: Likewise.
* soft-fp/floatuntihf.c: Likewise.
* soft-fp/half.h: Likewise.
* soft-fp/trunctfhf2.c: Likewise.