[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