Bug#1026206: g++-13: fails to compile #include <stdio.h> due to __float128 vs fixincludes
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?
Helmut
Reply to: