Re: Build error with GCC13 + newlib 4.1.0 - error: 'float_t' undeclared
Brian Inglis <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Organization | Inglis |
| Message-ID | <[email protected]> |
On 2023-05-27 23:07, Brian Inglis wrote: > On 2023-05-27 20:23, Chris Packham wrote: >> On Sun, May 28, 2023 at 2:00 PM Chris Packham <[email protected]> wrote: >>> On Sun, May 28, 2023 at 12:28 PM Joel Sherrill <[email protected]> wrote: >>>> On Sat, May 27, 2023, 7:02 PM Chris Packham <[email protected]> wrote: >>>>> I user reported the following build error with newlib after GCC13.1 >>>>> was added recently >>>> By any chance did the default version of C change in 13 versus what >>>> worked.before? >>>> FWIW It looks.like the bleeding edge RTEMS tool builds in our farm have >>>> some issue with gdb. So I don't have a handy case to compare. >>> https://gcc.gnu.org/gcc-13/changes.html doesn't mention it explicitly >>> but I wouldn't be surprised if it has. A few details have changed in the manual - search the man, info, PDF, PS, or html for FLT_EVAL_METHOD. >>>>> src/newlib/newlib/libm/math/wf_log2.c:34:22: error: 'float_t' >>>>> undeclared (first use in this function); did you mean 'float'? >>>>> 34 | return (logf(x) / (float_t) M_LN2); >>>>> | ^~~~~~~ >>>>> | float >>>>> From what I've been able to follow so far this may have something to >>>>> do with how FLT_EVAL_METHOD is defined. It's not really mentioned in >>>>> the GCC docs as something that has changed but I wonder if it is >>>>> perhaps implied by a C standard the default of which probably has >>>>> changed. >>>>> Does this ring any bells for anyone? > >>> I'll also add that I've now double checked the same configuration >>> works with GCC 12.2 > >> Looks like the following two upstream newlb changes might help >> >> https://sourceware.org/git?p=newlib-cygwin.git;a=commit;h=91f99d323b39dc0c06c40038791db9861d4b76b9 >> https://sourceware.org/git?p=newlib-cygwin.git;a=commit;h=27f0913c17c216548b2f5eea79037ee90038f375 > > Commit > https://sourceware.org/git/?p=newlib-cygwin.git;a=commitdiff;h=b060af2264c9cecd960d19cd9f223d6b66ff1acc was in newlib-2_0_0 end of 2012. > > C99+ is required to use, as are the low level definitions of FLT_EVAL_METHOD or > __FLT_EVAL_METHOD__: > > $ touch null.c > $ gcc -dM -E null.c | grep 'FLT_EVAL\|VERSION_' > #define __FLT_EVAL_METHOD__ 0 > #define __FLT_EVAL_METHOD_TS_18661_3__ 0 > #define __VERSION__ "11.3.0" > #define __STDC_VERSION__ 201710L -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry