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: