https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78480
Bug ID: 78480 Summary: m68k-rtems compile error in libgfortran Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: joel at gcc dot gnu.org Target Milestone: --- $ ./gcc/xgcc --version xgcc (GCC) 7.0.0 20161121 (experimental) I think the key is -mcpu=5206 has double and long double to be the same but _LDBL_EQ_DBL. Craig Howland suggested adding this to newlib's ieeefp.h which detected that it wasn't defined. #if (DBL_MANT_DIG == LDBL_MANT_DIG) && (LDBL_MIN_EXP == DBL_MIN_EXP) && \ (LDBL_MAX_EXP == DBL_MAX_EXP) #define _LDBL_EQ_DBL #else #error "LDBL != DBL" #endif #endif m68k-rtems4.12/sys-include -DHAVE_CONFIG_H -I. -I../../../../gcc/libgfortran -iquote../../../../gcc/libgfortran/io -I../../../../gcc/libgfortran/../gcc -I../../../../gcc/libgfortran/../gcc/config -I../../.././gcc -I../../../../gcc/libgfortran/../libgcc -I../../libgcc -I../../../../gcc/libgfortran/../libbacktrace -I../../libbacktrace -I../libbacktrace -std=gnu11 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings -Werror=implicit-function-declaration -Werror=vla -fcx-fortran-rules -ffunction-sections -fdata-sections -g -O2 -mcpu=5206 -MT single.lo -MD -MP -MF .deps/single.Tpo -c ../../../../gcc/libgfortran/caf/single.c -o single.o In file included from ../../../../gcc/libgfortran/libgfortran.h:81:0, from ../../../../gcc/libgfortran/caf/libcaf.h:33, from ../../../../gcc/libgfortran/caf/single.c:26: /home/joel/test-gcc/gcc/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" ^~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:195:3: error: unknown type name '__ieee_ext_field_type' __ieee_ext_field_type ext_fracl : EXT_FRACLBITS; ^~~~~~~~~~~~~~~~~~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:195:38: error: 'EXT_FRACLBITS' undeclared here (not in a function); did you mean 'EXT_FRACBITS'? __ieee_ext_field_type ext_fracl : EXT_FRACLBITS; ^~~~~~~~~~~~~ EXT_FRACBITS /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:195:26: error: bit-field 'ext_fracl' width not an integer constant __ieee_ext_field_type ext_fracl : EXT_FRACLBITS; ^~~~~~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:196:3: error: unknown type name '__ieee_ext_field_type' __ieee_ext_field_type ext_frach : EXT_FRACHBITS; ^~~~~~~~~~~~~~~~~~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:196:38: error: 'EXT_FRACHBITS' undeclared here (not in a function); did you mean 'EXT_FRACLBITS'? __ieee_ext_field_type ext_frach : EXT_FRACHBITS; ^~~~~~~~~~~~~ EXT_FRACLBITS /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:196:26: error: bit-field 'ext_frach' width not an integer constant __ieee_ext_field_type ext_frach : EXT_FRACHBITS; ^~~~~~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:197:3: error: unknown type name '__ieee_ext_field_type' __ieee_ext_field_type ext_exp : EXT_EXPBITS; ^~~~~~~~~~~~~~~~~~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:197:38: error: 'EXT_EXPBITS' undeclared here (not in a function); did you mean 'EXT_EXP_BIAS'? __ieee_ext_field_type ext_exp : EXT_EXPBITS; ^~~~~~~~~~~ EXT_EXP_BIAS /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:197:26: error: bit-field 'ext_exp' width not an integer constant __ieee_ext_field_type ext_exp : EXT_EXPBITS; ^~~~~~~ /home/joel/test-gcc/gcc/newlib/libc/include/ieeefp.h:198:3: error: unknown type name '__ieee_ext_field_type' __ieee_ext_field_type ext_sign : 1; ^~~~~~~~~~~~~~~~~~~~~