This is a guess because I am not sure. However I did a quad[1] stage
bootstrap of 8.2.0 twice in the past week and saw reasonably good[2]
results. However I took the final result and dropped it on some
other machine and g++ stopped working with oddball messages thus:
/usr/include/math.h:45:12: error: 'std::float_t' has not been declared
using std::float_t;
^~~~~~~
That caught me off guard entirely because the bootstrap4 host has
no problems at all.
So I then looked at my gcc 7.3.0 builds[3] and gave them a whirl on
these two host machines. One of them was just fine and the other
had a similar issue :
/usr/local/gcc7/lib/gcc/sparc64-sun-solaris2.10/7.3.0/include-fixed/math.h:52:12:
error: 'std::float_t' has not been declared
using std::float_t;
^~~~~~~
Strange. Even more strange the host that fails with 8.2.0 works just
fine with 7.3.0 however the other machine has opposite results.
I looked at my gcc 8.1.0 compiler[4] and saw this :
$ ls -l
/usr/local/gcc8/lib/gcc/sparc64-sun-solaris2.10/8.1.0/include-fixed/math.h
-rw-r--r-- 1 root bin 11133 May 11 09:04
/usr/local/gcc8/lib/gcc/sparc64-sun-solaris2.10/8.1.0/include-fixed/math.h
OKay ... however my 8.2.0 result has no such header file at all!
However it does exist in my previous 8.1.0 result as well as my 7.3.0
compiler :
$ ls -l
/usr/local/gcc7/lib/gcc/sparc64-sun-solaris2.10/7.3.0/include-fixed/math.h
-rw-r--r-- 1 root bin 11133 Apr 16 2018
/usr/local/gcc7/lib/gcc/sparc64-sun-solaris2.10/7.3.0/include-fixed/math.h
However gcc 8.2.0 works fine on the host that did the bootstrap and
fails on some other machine.
The question has to be where do these "include-fixed" headers come
from? I am looking for an end point result that I know I can drop
on any similar machine and it will "just work"(tm).
Dennis
[1] seemed like a good idea to give a try ... bootstrap4
[2] https://gcc.gnu.org/ml/gcc-testresults/2018-10/msg03050.html
[3] https://gcc.gnu.org/ml/gcc-testresults/2018-04/msg01455.html
[4] https://gcc.gnu.org/ml/gcc-testresults/2018-05/msg01368.html