[PATCH] add linker relaxation support for avr port rev. 6
Nick Clifton
nickc@redhat.com
Fri Mar 3 15:25:00 GMT 2006
Hi Björn,
> 2006-02-28 Bjoern Haase <bjoern.m.haase@web.de>
>
> * include/elf/avr.h:
>
> R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG: Add.
> EF_AVR_LINKRELAX_PREPARED: Add.
>
> * bfd/elf32-avr.c:
>
> avr_reloc_map:
> insert BFD_RELOC_AVR_MS8_LDI and R_AVR_MS8_LDI
> bfd_elf_avr_final_write_processing:
> set EF_AVR_LINKRELAX_PREPARED in e_flags field.
> elf32_avr_relax_section: add.
> elf32_avr_relax_delete_bytes: add.
> elf32_avr_get_relocated_section_contents: add.
> avr_pc_wrap_around: add.
> avr_relative_distance_considering_wrap_around: add.
> avr_final_link_relocate: Handle negative int8t_t immediate for R_AVR_LDI
>
> * gas/config/tc-avr.c:
>
> avr_mod_hash_value: Add.
> md_apply_fix, exp_mod:
> Use BFD_RELOC_HH8_LDI and BFD_RELOC_MS8_LDI for hlo8() and hhi8()
> md_begin:
> set linkrelax variable to 1, use avr_mod_hash_value instead of int
> avr_ldi_expression: use avr_mod_hash_value instead of (int)
> tc_gen_reloc:
> handle substractions of symbols, if possible do fixups, abort otherwise
>
> * gas/config/tc-avr.h:
> TC_LINKRELAX_FIXUP, TC_VALIDATE_FIX, tc_fix_adjustable: add.
>
> * bfd/bfd-in2.h: Add BFD_RELOC_AVR_MS8_LDI and BFD_RELOC_AVR_LDI_NEG
> * bfd/libbfd.h: Ditto.
> * bfd/reloc.c: Ditto.
>
> * ld/scripttempl/avr.sc:
> add *(.jumptables) *(.lowtext), add KEEP() directives
> add *(.data*) *(.rodata) and *(.rodata*) and *(.bss*) to .data and .bss
> output sections.
Approved and applied! Thanks very much for perservering with this patch.
Cheers
Nick
More information about the Binutils
mailing list