Build error with GCC13 + newlib 4.1.0 - error: 'float_t' undeclared
Brian Inglis
Brian.Inglis@Shaw.ca
Sun May 28 06:11:20 GMT 2023
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 <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.
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
More information about the Newlib
mailing list