AVR C Linker Error

OP #4454810
Hallo,
Der Linker bringt bei meinem Projekt die unten angehangenen Fehler. Ich 
hatte das schon mal, da hatte -lm im Libraries-eintrage gefehlt und die 
Sache war behoben. Nur diesmal klappt es nicht.
Weiss vielleicht jemand Rat?
Vielen Dank schon mal.

Ich benutze Eclipse und WINAVR 20100110.




Invoking: AVR C Linker
avr-gcc -Wl,-Map,vario_gleitwinkel.map -mmcu=atmega16 -im Libero 
"vario_gleitwinkel.elf"  ./src/BMP180.o ./src/DEM16216.o ./src/anemo.o 
./src/funktionen.o ./src/gps.o ./src/main.o ./src/tasten.o 
./src/twimaster.o ./src/uart.o
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(log.o):  In function `log':
(.text.avr-libc.fplib+0x46): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__addsf3' defined in .text section in 
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_addsub_sf.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(log.o):  In function `log':
(.text.avr-libc.fplib+0x4e): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__addsf3' defined in .text section in 
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_addsub_sf.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(log.o):  In function `log':
(.text.avr-libc.fplib+0x6a): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__floatsisf' defined in .text section in 
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_si_to_sf.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(pow.o):  In function `pow':
(.text.avr-libc.fplib+0x94): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__mulsf3' defined in .text section in 
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_mul_sf.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(inverse.o):  In function `inverse':
(.text.avr-libc.fplib+0xc): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__divsf3' defined in .text section in 
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_div_sf.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(modf.o):  In function `modff':
(.text.avr-libc.fplib+0x3e): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__subsf3' defined in .text section in 
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_addsub_sf.o)
make: *** [vario_gleitwinkel.elf] Error 1
ich verwende WinAVR  - 20100110
Persönliche Seite #4454826
Ralph F. schrieb:
> Ich hatte das schon mal, da hatte -lm im Libraries-eintrage
> gefehlt und die Sache war behoben. Nur diesmal klappt es nicht.
>
> Ich benutze Eclipse und WINAVR 20100110.
>
> avr-gcc -Wl,-Map,vario_gleitwinkel.map -mmcu=atmega16 -im Libero
> "vario_gleitwinkel.elf"  ./src/BMP180.o ./src/DEM16216.o ./src/anemo.o
> ./src/funktionen.o ./src/gps.o ./src/main.o ./src/tasten.o
> ./src/twimaster.o ./src/uart.o

Und wo ist das -lm?

Ich würd dir eine Version der Tools ans Herz legen, die diesen Bug nicht 
mehr hat, d.h. 4.7.2+

https://gcc.gnu.org/PR54461

Und falls es die 4.7 ist, darauf achten, dass configure mit 
--with-avrlibc ausgeführt wurde (bei 4.8+ ist diese Option an per 
default).
Persönliche Seite #4454852
...weiters verwendet die avr-libc RJMP ohne sicherzustellen, dass 
Sprungziele tatsächlich per RJMP erreichbar sind:

https://savannah.nongnu.org/bugs/?33698

Behoben ist dieses Problem erst mit der avr-libc 1.8.1.  Als Work-Around 
kannst du eine eigene Linker-Description verwendet, die garantiert, dass 
entsprechende .text Input-Sections der avr-libc dicht beieinander 
liegen.
OP #4455665
Hallo,

vielen dank Johann, aus den angehangen links habe ich rausbekommen das 
die math.h und deren funktionen diesen Fehler auftreten lässt. Wenn ich 
weder float noch eine math funktion nehme ist der Fehler weg.
Bez. des vorgeschlagenen Work-Around, hänge ich voll in der Luft. Ich 
benutze WINAVR 20100110 (die "neuste" version). Die avrlibc hat die 
versionsnummer 1.6.7. , der gcc compiler ist version 4.3.3.
aber was ich genau machen muss ..?
Ich werd noch ein bisschen lesen.
gruss
bis bald

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.