[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



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: