avgcc - LInker Fehler - relocation truncated to fit: R_AVR_13_PCREL against symbol

OP #3242107
Lesenswert?
• ▲
▼
Hallo,

da programmiert man so vor sich hin, und auf einmal bekomme ich
einen Fehler beim Linken, den ich nur wegbekomme, wenn ich irgendwo
ein paar Zeilen Code auskommentiere:

folgende Fehlermeldung:

->make

avr-gcc -g -Os -Wall -Wextra -Wstrict-prototypes -mmcu=atmega324p 
-mcall-prologues -fomit-frame-pointer -fno-inline-small-functions 
-fno-tree-scev-cprop -fno-split-wide-types -lm  -c main.c
avr-gcc -Wl,-Map=main.map,--cref,--section-start=.text=0x0000,--relax 
-mmcu=atmega324p -gstabs,-ahlms=main.o -omain.elf main.o spi.o smk.o 
parameter.o rs232C1.o error.o comm.o adc.o kty81.o i2c.o pcf8574.o 
systimer.o eeprom.o protokoll.o
/usr/lib/gcc/avr/4.7.2/../../../avr/lib/avr5/crtm324p.o: In function 
`__bad_interrupt':
../../../../crt1/gcrt1.S:195: relocation truncated to fit: 
R_AVR_13_PCREL against symbol `__vector_20' defined in .text section in 
rs232C1.o
collect2: error: ld returned 1 exit status
make: *** [main] Fehler 1


Ich habe hier im Forum irgendwo gelesen, daß dieses ein Bug mit zu 
weiten
Sprüngen wäre, ist dies richtig ?

Was kann ich dagegen tun ?

Danke an alle
Jogibär
Gast #3242114
Lesenswert?
• ▲
▼
Dagegen tun kannst du das, was man in solchen Fällen immer tut, nämlich 
die relevante Fehlermeldung nach google zu kopieren, und dann einfach 
mal nachlesen, was der Rest der Menschheit sich dazu schon ausgedacht 
hat. Denn, auch wenn du es dir kaum vorstellen kannst, du bist nicht der 
Erste mit dieser Fehlermeldung. Eigentlich ist man inzwischen niemals 
der Erste...

Oliver
OP #3242197
Lesenswert?
• ▲
▼
Oliver schrieb:
> Dagegen tun kannst du das, was man in solchen Fällen immer tut, nämlich
> die relevante Fehlermeldung nach google zu kopieren, und dann einfach
> mal nachlesen, was der Rest der Menschheit sich dazu schon ausgedacht
> hat. Denn, auch wenn du es dir kaum vorstellen kannst, du bist nicht der
> Erste mit dieser Fehlermeldung. Eigentlich ist man inzwischen niemals
> der Erste...
>
> Oliver

Hallo Oliver,

Du wirst es nicht glauben, das habe ich schon getan.
Dort wurden mehrere Ursachen genannt.
Daher ja die Frage zu den Sprüngen.
Ganz blöde bin ich noch nicht !

Hallo Marius,
der ist es nicht. Bin erst bei 8kb Programmspeicher, habe aber 32kb.

Hallo Jörg,

ich habe das Problem erstmal gelöst, indem ich die Reihenfolge der 
Dateien,
die compiliert werden, geändert habe. Damit ist das Problem erst mal 
weg.
Falls es wieder auftritt, werde ich mal Deinen Vorschlag ausprobieren.


-mrelax
Try to replace "CALL" resp. "JMP" instruction by the shorter "RCALL"
resp. "RJMP" instruction if applicable.  Setting "-mrelax" just adds
the "--relax" option to the linker command line when the linker is 
called.


Vielen Danke an alle
Jogibär

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.