http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52535
Bug #: 52535 Summary: SH Target: libfortran won't build for sub-targets where DFmode is set to SFmode? Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: olege...@gcc.gnu.org CC: kkoj...@gcc.gnu.org Target: sh*-*-* It seems that for SH sub-targets where DFmode is set to be the same as SFmode (everything ??-single-only, m2e ..) libfortran multilibs fail to build with the following error: gcc-trunk-build-sh-elf/./gcc/xgcc -B/home/yam/code/gcc/gcc-trunk-build-sh-elf/./gcc/ -B/usr/local/sh-elf/bin/ -B/usr/local/sh-elf/lib/ -isystem /usr/local/sh-elf/include -isystem /usr/local/sh-elf/sys-include -DHAVE_CONFIG_H -I. -I../../../../gcc-trunk/libgfortran -iquote../../../../gcc-trunk/libgfortran/io -I../../../../gcc-trunk/libgfortran/../gcc -I../../../../gcc-trunk/libgfortran/../gcc/config -I../../.././gcc -I../../../../gcc-trunk/libgfortran/../libgcc -I../../libgcc -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings -fcx-fortran-rules -ffunction-sections -fdata-sections -mieee -g -O2 -m2e -MT cshift0.lo -MD -MP -MF .deps/cshift0.Tpo -c ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c -o cshift0.o ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c: In function 'cshift0': ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c:131:5: error: duplicate case value ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c:127:5: error: previously used here ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c:161:5: error: duplicate case value ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c:157:5: error: previously used here ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c:268:5: error: duplicate case value ../../../../gcc-trunk/libgfortran/intrinsics/cshift0.c:221:5: error: previously used here make[6]: *** [cshift0.lo] Error 1 make[6]: Leaving directory `/home/yam/code/gcc/gcc-trunk-build-sh-elf/sh-elf/m2e/libgfortran' Looking at the generated (?) libgfortran/kinds.h file in the sub-target's build dir the problem seems to be a bit worse: typedef float GFC_REAL_4; typedef complex float GFC_COMPLEX_4; #define HAVE_GFC_REAL_4 #define HAVE_GFC_COMPLEX_4 #define GFC_REAL_4_HUGE 3.40282347e38f #define GFC_REAL_4_LITERAL_SUFFIX f #define GFC_REAL_4_LITERAL(X) (X ## f) #define GFC_REAL_4_DIGITS 24 #define GFC_REAL_4_RADIX 2 typedef double GFC_REAL_8; typedef complex double GFC_COMPLEX_8; #define HAVE_GFC_REAL_8 #define HAVE_GFC_COMPLEX_8 #define GFC_REAL_8_HUGE 1.7976931348623157e308 #define GFC_REAL_8_LITERAL_SUFFIX #define GFC_REAL_8_LITERAL(X) (X) #define GFC_REAL_8_DIGITS 53 #define GFC_REAL_8_RADIX 2 Both GFC_REAL_8 and GFC_REAL_4 are actually of type float. In this case all the other GFC_REAL_8 definitions are wrong.