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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren