On Fri, 29 Sept 2023 at 15:07, Jonathan Wakely <jwak...@redhat.com> wrote:
>
> On Tue, 6 Dec 2016 at 17:59, Jonathan Wakely wrote:
> > >Subject: [PATCH 3/3] Enable libstdc++ compilation in AVR targets
> > >
> > >Enable libstdc++ compilation in AVR targets with AVR-Libc. Most
> > >floating point math functions are already defined in AVR-Libc, so
> > >defines are in place to avoid multiple definition of these functions.
> >
> > I've committed this one too.
>
>
> Hi Felipe,
>
> Back in 2006 we committed a patch from you that made this change:

Oops, sorry for the typo, I meant 2016 of course!


>
> --- a/libstdc++-v3/crossconfig.m4
> +++ b/libstdc++-v3/crossconfig.m4
> @@ -9,6 +9,32 @@ case "${host}" in
>      # This is a freestanding configuration; there is nothing to do here.
>      ;;
>
> +  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)
> +    ;;
> +
>    mips*-sde-elf*)
>      # These definitions are for the SDE C library rather than newlib.
>      SECTION_FLAGS='-ffunction-sections -fdata-sections'
>
> I'm testing a change today which causes a build failure on avr,
> because of your config change.
>
> I've filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111639 about
> this, could you take a look please?
>
> You said that AVR has those math functions, so we don't need to define
> them in libstdc++-v3/src/c++98/math_stubs_float.cc but I don't think
> that's true. It doesn't have them, it has macros like this:
>
> extern double acos(double __x) __ATTR_CONST__;
> #define acosf    acos        /**< The alias for acos().    */
>
> That does indeed cause build failures in math_stubs_float.cc, but not
> because of duplicate definitions of acosf etc.
>
> And the macro definitions are not acceptable definitions of those
> functions for a C++ library.
>
> I've proposed a fix in the bug report.

Reply via email to