[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1026206: g++-13: fails to compile #include <stdio.h> due to __float128 vs fixincludes



On Fri, 16 Dec 2022 11:06:37 +0100 Helmut Grohne <helmut@subdivi.de> wrote:
> Package: g++-13
> Version: 13-20221214-1
> Severity: serious
> 
> Hi Matthias,
> 
> thanks for pushing gcc-13 into experimental already. That leaves plenty
> of time to work on it. I've located a quite fundamental problem with it
> already:
> 
> $ cat test.c++
> #include <stdio.h>
> $ g++-13 -c test.c++
> In file included from /usr/include/stdio.h:430,
>                  from test.c++:1:
> /usr/include/x86_64-linux-gnu/bits/floatn.h:87:9: error: multiple types in one declaration
>    87 | typedef __float128 _Float128;
>       |         ^~~~~~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn.h:87:20: error: declaration does not declare anything [-fpermissive]
>    87 | typedef __float128 _Float128;
>       |                    ^~~~~~~~~
> In file included from /usr/include/x86_64-linux-gnu/bits/floatn.h:120:
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:214:9: error: multiple types in one declaration
>   214 | typedef float _Float32;
>       |         ^~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:214:15: error: declaration does not declare anything [-fpermissive]
>   214 | typedef float _Float32;
>       |               ^~~~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:251:9: error: multiple types in one declaration
>   251 | typedef double _Float64;
>       |         ^~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:251:16: error: declaration does not declare anything [-fpermissive]
>   251 | typedef double _Float64;
>       |                ^~~~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:268:9: error: multiple types in one declaration
>   268 | typedef double _Float32x;
>       |         ^~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:268:16: error: declaration does not declare anything [-fpermissive]
>   268 | typedef double _Float32x;
>       |                ^~~~~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:285:14: error: multiple types in one declaration
>   285 | typedef long double _Float64x;
>       |              ^~~~~~
> /usr/include/x86_64-linux-gnu/bits/floatn-common.h:285:21: error: declaration does not declare anything [-fpermissive]
>   285 | typedef long double _Float64x;
>       |                     ^~~~~~~~~
> $
> 
> Jakub Jelinek kindly pointed out that bits/floatn.h and
> bits/floatn-common.h should be fixincluded. I can see that this is
> happening in a build log and that those fixed includes are not contained
> in any binary package. As such, this is not considered an upstream
> problem. I see that the packaging deletes include-fixed and fail to
> understand why that happens at this time. Do you have a better
> understanding?

I try to build a cross toolchain, it has this problem, too.
So, should it be an upstream bug? I guess.

Gcc git master has this problem, while branch gcc-12 doesn’t.

> 
> Helmut
> 
> 
> 


Reply to: