Wed 02 May 2007 07:10:49 AM UTC, original submission:
$ avr-gcc -mmcu=atmega168 x.o -o x.elf -lm -Wl,-u,vfprintf -\
lprintf_flt -Wl,-Map=firstmag.map,--cref
/usr/local/avr/lib/gcc/avr/4.1.1/../../../../avr/lib/avr5/libc.a(fixsfsi.o): In function `__fixsfsi':
../../../libm/fplib/fixsfsi.S:57: multiple definition of `__fixsfsi'
/usr/local/avr/lib/gcc/avr/4.1.1/avr5/libgcc.a(_sf_to_si.o):/usr/local/avr/build/gcc-4.1.1/gcc/fp-bit.c:1404: fi\
rst defined here
I am getting this problem with:
LDFLAGS = -lm -Wl,-u,vfprintf -lprintf_flt
The problem always occurs if I don't have a printf
with %f in it in the program, and in some cases where
it does.
If I insert the following code into my program the
problem never occurs:
void dum(void)
{
int c;
printf("%f", (double)c);
}
If I were to declare c as a double, the problem could still
occur.
Should a function be removed from libgcc?
|