On Thu, 2 Sep 2021, Iain Sandoe via Gcc-patches wrote:
> diff --git a/libgcc/soft-fp/eqdf2.c b/libgcc/soft-fp/eqdf2.c
> index 2a44ee377ce..a3bb664f5f1 100644
> --- a/libgcc/soft-fp/eqdf2.c
> +++ b/libgcc/soft-fp/eqdf2.c
> @@ -28,6 +28,7 @@
> License along with the GNU C Library; if not, see
> <http://www.gnu.org/licenses/>. */
>
> +#define DarwinMode DF
> #include "soft-fp.h"
> #include "double.h"
All these files are supposed to be taken unmodified from glibc. They
shouldn't contain any OS-specific code, such as a define of DarwinMode.
sfp-machine.h, however, is libgcc-local, hence putting the definition of
strong_alias there.
So you need some other way to extract the argument type of name in order
to use it in a declaration of aliasname. E.g.
__typeof (_Generic (name,
CMPtype (*) (HFtype, HFtype): (HFtype) 0,
CMPtype (*) (SFtype, SFtype): (SFtype) 0,
CMPtype (*) (DFtype, DFtype): (DFtype) 0,
CMPtype (*) (TFtype, TFtype): (TFtype) 0))
Now in fact I think the include ordering means none of the *type macros
are defined here. But if you do e.g.
typedef float alias_SFtype __attribute__ ((mode (SF)));
and similar, you could use alias_SFtype in the above. And so keep the
changes to the Darwin-specific parts of the libgcc-local sfp-machine.h.
--
Joseph S. Myers
[email protected]