Fehlermeldungen

Gast #410943
Lesenswert?
• ▲
▼
Ich bekomme folgende Fehlermeldungen mit AVR Studio 4.12 SP3 Build 90
beim Linken:


C:/WinAVR/bin/../lib/gcc/avr/3.4.5/../../../../avr/lib/avr5\libc.a(fmod. 
o):
In function `fmod':
: relocation truncated to fit: R_AVR_13_PCREL against symbol
`__divsf3' defined in .text section in
C:/WinAVR/lib/gcc/avr/3.4.5/avr5\libgcc.a(_div_sf.o)
C:/WinAVR/bin/../lib/gcc/avr/3.4.5/../../../../avr/lib/avr5\libc.a(fmod. 
o):
In function `fmod':
: relocation truncated to fit: R_AVR_13_PCREL against symbol
[...(Rest gelöscht)]

Hat jemand eine Ahnung, was das Problem ist und wie es zu lösen ist?
Gast #410944
Lesenswert?
• ▲
▼
Hallo !

Habe ebenfalls die Fehlermeldung.
Das scheint ein Bug im gcc oder linker zu sein.

Ausgelöst wurde der Fehler bei mir durch eine einzige Zeile:

if(float==anotherFloat)
  ...

Weiß jemand wie man das fixen kann ?
Gast #410946
Lesenswert?
• ▲
▼
Hallo !
Die option war drin. Hier die gesamte Fehlermeldung:

avr-c++.exe -mmcu=atmega32 -Wl,-u,vfprintf -lprintf_flt -lm foo.o -o
foo.elf
C:/Programmes/Atmel/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/ 
avr5\libm.a(modf.o):
In function `modf':
: relocation truncated to fit: R_AVR_13_PCREL against symbol
`__addsf3' defined in .text section in
C:/Programme/Atmel/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_addsub_sf.o)


Gruß
Moderator Persönliche Seite #410947
Lesenswert?
• ▲
▼
Eine Bibliothek, die vor dem eigentlichen Objektfile angegeben
wird, dessen ungeklärte Externreferenzen eigentlich in der
Bibliothek aufgelöst werden sollen, ist umsonst.  (Ausnahme:
das vfprintf() wird aus der libprintf_flt.a genommen, da für
dieses Symbol mittels -u zwangsweise eine undefinierte Referenz
erzeugt worden ist.)

Schreib das -lm ganz ans Ende der Linkerkommandozeile, und es
wird funktionieren.

Dass es ohne -lm nicht funktioniert ist ein bekannter Bug:

https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14855
https://savannah.nongnu.org/bugs/?func=detailitem&item_id=3485

(Einer von den beiden...)  Leider ist der praktisch nicht ohne
Neuschreiben der Mathematik-Bibliothek zu lösen.
Gast #410948
Lesenswert?
• ▲
▼
Danke, super !
Habe jetzt im AVR-Studio bei Project Options einfach bei "link with
these Objects" die libm.a angegeben.
Seitdem funktioniert es nicht nur, sondern der erzeugte code ist sogar
10% kleiner als vorher!!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.