https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111639
Bug ID: 111639 Summary: HAVE_ACOSF etc. are wrong on avr Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- Target: avr The <math.h> in avr-libc does things like this: extern double acos(double __x) __ATTR_CONST__; #define acosf acos /**< The alias for acos(). */ and then crossconfig.m4 does: avr*-*-*) AC_DEFINE(HAVE_ACOSF) AC_DEFINE(HAVE_ASINF) AC_DEFINE(HAVE_ATAN2F) AC_DEFINE(HAVE_ATANF) AC_DEFINE(HAVE_CEILF) AC_DEFINE(HAVE_COSF) AC_DEFINE(HAVE_COSHF) AC_DEFINE(HAVE_EXPF) AC_DEFINE(HAVE_FABSF) AC_DEFINE(HAVE_FLOORF) AC_DEFINE(HAVE_FMODF) AC_DEFINE(HAVE_FREXPF) AC_DEFINE(HAVE_SQRTF) AC_DEFINE(HAVE_HYPOTF) AC_DEFINE(HAVE_LDEXPF) AC_DEFINE(HAVE_LOG10F) AC_DEFINE(HAVE_LOGF) AC_DEFINE(HAVE_MODFF) AC_DEFINE(HAVE_POWF) AC_DEFINE(HAVE_SINF) AC_DEFINE(HAVE_SINHF) AC_DEFINE(HAVE_TANF) AC_DEFINE(HAVE_TANHF) ;; But this doesn't work, because <cmath> has to #undef all math function names, so we #undef the acosf macro and then the HAVE_ACOSF macro is left defined but is now lying.