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

#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
#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

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