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 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. >>>> 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 > Which leads into another question. ct-ng currently has newlib-4.1.0. > Looking at https://sourceware.org/ftp/newlib/index.html are the 4.2.0 > and 4.3.0 dated snapshots the actual release or are they release > candidates? Both newlib and Cygwin are rolling releases, occasionally tagged for reference. Latest newlib annual snapshot is 4.3.0 early this year, instead of 4.2.0 tag was 20211231, 4.1.0 was end of 2020. -- 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