http://sourceware.org/bugzilla/show_bug.cgi?id=13410
Bug #: 13410 Summary: [avr]: error: relocation truncated to fit: R_AVR_13_PCREL against symbol Product: binutils Version: 2.21 Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassig...@sourceware.org ReportedBy: g...@gcc.gnu.org CC: eric.wedding...@atmel.com Classification: Unclassified Target: avr == Affected versions == At least 2.20 and 2.21 == source (foo.ss) == .text .global main .global sin main: ret .section .progmem.data,"a",@progbits aaa: .zero 3848 == Steps to reproduce == You need an avr-toolchain installation, i.e. avr-gcc, avr-binutils and avr-libc. I couln'd reproduce the error without linking against avr-libc $ avr-as foo.ss -o foo.o -mmcu=atmega2560 $ avr-gcc -Wl,--cref -mrelax -Wl,-relax foo.o -mmcu=atmega2560 -o foo.elf -Wl,-Map=foo.map -lm The bug depends on how big the functions in avr-libc are. If you do not see the bug (which is likely) do the following: Generate a list file: $ avr-objdump -d foo.elf > foo.lst The end list file will look like ... 0000133e <__stop_program>: 133e: ff cf rjmp .-2 ; 0x133e <__stop_program> Adjust the size of aaa from foo.ss to that __stop_program will be located at address 0x133c. In the example, you would have to decrease the size of aaa by 2. == Full output from linker with -v -Wl,-v == > "make" XXX avr-gcc -Wl,--cref -mrelax -Wl,-relax foo.o -mmcu=atmega2560 -o foo.elf -Wl,-Map=foo.map -lm -v -Wl,-v Using built-in specs. COLLECT_GCC=e:/WinAVR/4.5.2/bin/avr-gcc COLLECT_LTO_WRAPPER=e:/winavr/4.5.2/bin/../libexec/gcc/avr/4.5.2/lto-wrapper.exe Target: avr Configured with: ../gcc-4.5.2/configure --prefix=c:/mhvavrtools --host=i686-pc-mingw32 --target=avr --enable-languages=c,c++ --with-dwarf2 -enable-win32-registry=MHV-AVR-Tools --disable-nls --with-gmp=c:/mhvavrtools --with-mpfr=c:/mhvavrtools --with-mpc=c:/mhvavrtools --disable-libssp Thread model: single gcc version 4.5.2 (GCC) COMPILER_PATH=e:/winavr/4.5.2/bin/../libexec/gcc/avr/4.5.2/;e:/winavr/4.5.2/bin/../libexec/gcc/;e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/bin/ LIBRARY_PATH=e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/avr6/;e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib/avr6/;e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/;e:/winavr/4.5.2/bin/../lib/gcc/;e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib/ COLLECT_GCC_OPTIONS='-mrelax' '-mmcu=atmega2560' '-o' 'foo.elf' '-v' e:/winavr/4.5.2/bin/../libexec/gcc/avr/4.5.2/collect2.exe --relax -m avr6 -Tdata 0x800200 -o foo.elf e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib/avr6/crtm2561.o -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/avr6 -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib/avr6 -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2 -Le:/winavr/4.5.2/bin/../lib/gcc -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib --cref -relax foo.o -Map=foo.map -lm -v -lgcc -lc -lgcc collect2 version 4.5.2 (GNU assembler syntax) e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/bin/ld.exe --relax -m avr6 -Tdata 0x800200 -o foo.elf e:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib/avr6/crtm2561.o -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/avr6 -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib/avr6 -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2 -Le:/winavr/4.5.2/bin/../lib/gcc -Le:/winavr/4.5.2/bin/../lib/gcc/avr/4.5.2/../../../../avr/lib --cref -relax foo.o -Map=foo.map -lm -v -lgcc -lc -lgcc GNU ld (GNU Binutils) 2.20.1.20100303 -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils