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 jos...@codesourcery.com