This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libfortran/52535] New: SH Target: libfortran won't build for sub-targets where DFmode is set to SFmode?
- From: "olegendo at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 08 Mar 2012 21:56:34 +0000
- Subject: [Bug libfortran/52535] New: SH Target: libfortran won't build for sub-targets where DFmode is set to SFmode?
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: olegendo@gcc.gnu.org
CC: kkojima@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.