Hilfe beim Build - komme mit einer Fehermeldung nicht klar

Gast #2972394
Lesenswert?
• ▲
▼
Hallo,

hab ein Projekt gefunden welches ich nachbauen und anpasse möchte. Sonst 
mache ich nur wenig mit C. Studio4 bricht das Make mit folgender Meldung 
ab: (gekürzt)

avr-gcc -mmcu=atmega64 -Wl,-Map=tas.map main.o lcd.o i2cmaster.o     -o 
tas.elf
i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(fp_powsodd.o):  In function `__fp_powsodd':
(.text.avr-libc.fplib+0x10): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__mulsf3' defined in .text section in 
i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_mul_sf.o)
i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib 
c.a(fp_powsodd.o):  In function `__fp_powsodd':
(.text.avr-libc.fplib+0x20): relocation truncated to fit: R_AVR_13_PCREL 
against symbol `__mulsf3' defined in .text section in 
i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_mul_sf.o)
i:/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 
i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_div_sf.o)
.
.
.
i:/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 
i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a(_addsub_sf.o)
make: *** [tas.elf] Error 1
Build failed with 1 errors and 0 warnings...

Alle includes sind da, die Sourcen sind da.
Habe mal den Projektordner in den Anhang gestellt.

Wäre dankbar wenn jemand einen Tip für mich hat.

Gruß
Markus
Angehängte Dateien:
Gast #2972579
Lesenswert?
• ▲
▼
Ich kenne jetzt die Architektur nicht, aber der Fehler kommt von Linker.

Irgendwie ist Speicherplatz für die Relokationstabelle zu klein.

z.B. wird nur Speicher für einen "kurzen" Sprung (8 Bit relativ) 
reserviert, der Compilker muss aber einen Sprung mit 16 Bit Adresse 
machen. Deshalb wird die 16 Bit Addresse auf 8 Bit gekürtzt.

-> relocation truncated

Die Symbole der math-Lib -lm sind ja da.
-> against symbol `__subsf3' defined in .text
#2972638
Lesenswert?
• ▲
▼
Hans Ulli Kroll schrieb:
> Die Symbole der math-Lib -lm sind ja da.
> -> against symbol `__subsf3' defined in .text

Und was steht da noch in der Zeile?
1
... defined in .text section in i:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr5\libgcc.a
Dass das Symbol eben nicht aus der angepassten Math-Lib (libm.a) 
aufgelöst wurde, sondern aus der (Compiler eigenen) generischen 
(libgcc.a).
Gast #2972679
Lesenswert?
• ▲
▼
Detlef B. schrieb:
> Bloß keine Infos oder gar Fehlermeldungen geben! Sonst ist das Problem
>
> schnell gelöst. Und du willst doch Spaß bis weit ins neue Jahr haben.

Hallo,
welche Infos brauchst du denn? Ich hab alles was Build ausgespuckt hat 
und mit wichtig schien kopiert. Da ich die Fehlerursache nicht kenne 
kann ich auch keine gezielten Infos zur Ursache geben.

Und nun? Ist der erzeugte Code nun i.O.? Komme erst später dazu ihn zu 
testen.
Vielen Dank für die schnelle Hilfe.

Markus C.
Gast #2972727
Lesenswert?
• ▲
▼
@sternst

OK.
Habe gerade nach deinem Hinweis in /usr/avr/lib nach dem Symbol gegrept 
(Linux)

@Markus C.

Ändere mal das Makefile
An Zeile 28 ein -lm anfügen
1
LDFLAGS +=  -Wl,-Map=tas.map -lm
#2972765
Lesenswert?
• ▲
▼
Hans Ulli Kroll schrieb:
> Ändere mal das Makefile
> An Zeile 28 ein -lm anfügen
> LDFLAGS +=  -Wl,-Map=tas.map -lm

Nein. Das -lm muss hinter die Objekt-Dateien, davor nützt es rein gar 
nichts.


@  MarkusC:
Das ist doch offensichtlich ein AVR-Studio-4-Projekt. Also füge die Lib 
in der IDE hinzu, nicht im Makefile (welches dir sowieso wieder 
überschrieben wird).
Project -> Configuration Options -> Libraries

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.