bugAVR C Runtime Library - Bugs: bug #19771, multiple definition of `__fixsfsi'

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #19771: multiple definition of `__fixsfsi'

Submitter:  Sean D Epagnier <geckosenator>
Submitted:  Wed 02 May 2007 07:10:49 AM UTC
   
 
Category:  None Severity:  3 - Normal
Priority:  5 - Normal Item Group:  None
Status:  Duplicate Assigned to:  joerg_wunsch
Percent Complete:  0% Open/Closed:  Closed
Release:  None Fixed Release:  None

Wed 02 May 2007 07:52:06 AM UTC, comment #1: 

This is essentially a duplicate for bug #3485.

In your particular case, your fault was to add -lm before
forcing the undefined reference to the floating-point version
of vfprintf.  Reorder that to

LDFLAGS = -Wl,-u,vfprintf -lprintf_flt -lm

and it should work.

Joerg Wunsch <joerg_wunsch>
Group administrator
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?

Sean D Epagnier <geckosenator>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by joerg_wunsch (Posted a comment)
  • -email is unavailable- added by geckosenator (Submitted the item)
  •  

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2007-05-02 joerg_wunsch StatusNone Duplicate
        Assigned toNone joerg_wunsch
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code