------- 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

Reply via email to