the mystery of math.h in lib/gcc/%triple-name%/%gcc-version%/include-fixed

Dennis Clarke dclarke@blastwave.org
Wed Oct 24 03:25:00 GMT 2018


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



More information about the Gcc-help mailing list