Boyapati, Anitha schrieb: > >> -----Original Message----- >> From: avr-gcc-list-bounces+anitha.boyapati=atmel....@nongnu.org >> [mailto:avr-gcc-list-bounces+anitha.boyapati=atmel....@nongnu.org] On >> Behalf Of Joerg Wunsch >> Sent: Thursday, June 16, 2011 11:30 AM >> To: avr-gcc-list@nongnu.org >> Subject: Re: [avr-gcc-list] Trouble with: relocation truncated >> tofit:R_AVR_13_PCREL >> >> "Boyapati, Anitha" <anitha.boyap...@atmel.com> wrote: >> >>> 1. Why can't rcall/rjmp be used against external symbols? >> They can, and they (usually) do. >> >>> If the value falls outside the legal range, linker relaxation can >>> handle it. >> No. Linker relaxations can only work the other way: replace longer >> jumps/calls by smaller ones. > > Hmm, interesting. >
The reason why linker must not increase instruction sizes is that branches (BRXX) could fall out of range and the linker would have to relax them also by inserting, e.g. reversed branch over a jump. This gets considerably complicated if the branch is inside a skip. Note that local labels are already resolved by gas, so that it would be necessary to move much logic from gas to ld and reimplement it in avr part. It's doable and I see it being done for other architectures, but it's much work. Johann > > Anitha > _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-gcc-list