Build error with GCC13 + newlib 4.1.0 - error: 'float_t' undeclared
Brian Inglis
Brian.Inglis@Shaw.ca
Sun May 28 05:07:57 GMT 2023
On 2023-05-27 20:23, Chris Packham wrote:
> On Sun, May 28, 2023 at 2:00 PM Chris Packham <judge.packham@gmail.com> wrote:
>> On Sun, May 28, 2023 at 12:28 PM Joel Sherrill <joel@rtems.org> wrote:
>>> On Sat, May 27, 2023, 7:02 PM Chris Packham <judge.packham@gmail.com> 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
More information about the Newlib
mailing list