> -----Original Message----- > From: > [email protected] > [mailto:avr-gcc-list-bounces+eweddington=cso.atmel....@nongnu. > org] On Behalf Of Bob Paddock > Sent: Wednesday, February 25, 2009 12:41 PM > To: avr-gcc-list > Subject: [avr-gcc-list] Meaning of "relocation truncated to > fit:R_AVR_13_PCREL"? > > What does this error mean?: > > g:/winavr~4/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25 > /crttn88.o:(.init9+0x2): > relocation truncated to fit: R_AVR_13_PCREL against symbol `exit' > defined in .fini9 section in g:/winavr~4/bin/../lib/gcc/avr/4.3.2 \ > /avr25\libgcc.a(_exit.o) > make[1]: *** [LT_A.elf] Error 1 > make: *** [all] Error 2 > > There is no 'exit' in my code; _exit() exits from Main, have not added > OS_Main yet. > > Seems code size related. > 4420 bytes fit before the error triggers.
Yeah, it took me a while to figure this one out, but I finally did recently. FYI, you also ran into a bug that has now been fixed, but not yet released. The R_AVR_13_PCREL relocation is typically where a rjmp/rcall is not working due to total code size. The "13_PCREL" part means a 13-bit relative to PC. RJMP/RCALL can address +/- 2K words, hence 8K bytes total range and 2^13 = 8K. You're using tiny88 which is avr25 architecture. There was a bug recently in binutils, where it wasn't probably doing the wraparound for this relocation because the avr25 arch was forgotten to be added to a list. This is fixed now and will be in the next WinAVR release. I'm trying to get a WinAVR RC out this week. We should see if that helps your situation. Eric Weddington _______________________________________________ AVR-GCC-list mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
