On 11/21/2016 12:03 PM, Joel Sherrill wrote:
On 11/21/2016 10:52 AM, Craig Howland wrote:
...
Hmm.. my C/C++ toolset has this in float.h which looks correct:
/* Number of base-FLT_RADIX digits in the significand, p. */
#undef FLT_MANT_DIG
#undef DBL_MANT_DIG
#undef LDBL_MANT_DIG
#define FLT_MANT_DIG __FLT_MANT_DIG__
#define DBL_MANT_DIG __DBL_MANT_DIG__
#define LDBL_MANT_DIG __LDBL_MANT_DIG__
I will ask the user what the one in their build tree looks like.
If that looks OK, maybe the source file that isn't compiling
isn't including float.h. The user report doesn't go back far enough
to have a file -- only errors in ieeefp.h.
I have a thread to pull on. Thanks.
And I have something more concrete. :)
So far multiple RTEMS targets have built FORTRAN OK. But
the i386 (which is the one the user was trying) fails
with this:
/home/joel/rtems-4.11-work/rtems-source-builder/rtems/build/i386-rtems4.12-gcc-6-20161110-newlib-2.4.0.20161025-x86_64-linux-gnu-1/gcc-6-20161110/newlib/libc/include/ieeefp.h:152:2:
error: #error "double and long double are the same size but LDBL_EQ_DBL is not
defined"
#error "double and long double are the same size but LDBL_EQ_DBL is not defined"
^~~~~
The versions of gcc and newlib are in this version string
from sparc-rtems4.12-gcc:
sparc-rtems4.12-gcc (GCC) 6.2.1 20161110 (RTEMS 4.12, RSB
1c68dbb293922863d5f48ec05559b0fc4b4ea893, Newlib 2.4.0.20161025)
It is nice to see ieeefp.h being defensive. Is the bug
in machine/ieeefp.h which should define this?
Thanks again.
--joel