This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/18887] libgcc2.h Improperly determines required built-in function size requirements.
- From: "schlie at comcast dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Dec 2004 20:25:07 -0000
- Subject: [Bug c/18887] libgcc2.h Improperly determines required built-in function size requirements.
- References: <20041208130405.18887.schlie@comcast.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From schlie at comcast dot net 2004-12-08 20:25 -------
Subject: Re: libgcc2.h Improperly determines required
built-in function size requirements.
> ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-08
> Is this really a bug as almost all 8/16bit targets provide their own libgcc1?
(good news / bad news, speak of the devil)
Here's a real bug, apparently recently introduced:
The avr build of today's GCC 4.0 fails because libgcc2 defines a DF mode
64-bit double built-in function although the target defines a SI mode 32-bit
double type; (as unfortunately the libgcc2.h code is basically garbage):
#if BITS_PER_UNIT == 8 { which has nothing to do with anything }
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));
...
#if BITS_PER_UNIT == 8 { then defines a function with it }
extern DWtype __fixdfdi (DFtype);
...
Although avr.h defines:
#define DOUBLE_TYPE_SIZE 32
Resulting in:
/Applications/avr/gcc-build/gcc/xgcc -B/Applications/avr/gcc-build/gcc/
-B/usr/local/avr/bin/ -B/usr/local/avr/lib/ -isystem /usr/local/avr/include
-isystem /usr/local/avr/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -isystem ./include -DDF=SF -Dinhibit_libc
-mcall-prologues -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc
-I. -I -I../../gcc/gcc -I../../gcc/gcc/ -I../../gcc/gcc/../include
-I../../gcc/gcc/../libcpp/include -DL_fixdfdi -c ../../gcc/gcc/libgcc2.c -o
libgcc/./_fixdfdi.o
../../gcc/gcc/libgcc2.c: In function '__fixdfdi':
../../gcc/gcc/libgcc2.c:1198: internal compiler error: in find_valid_class,
at reload.c:712
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [libgcc/./_fixdfdi.o] Error 1
make[1]: *** [stmp-multilib] Error 2
make: *** [all-gcc] Error 2
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18887