Movatterモバイル変換
[0]ホーム
This is the mail archive of thebinutils@sources.redhat.commailing list for thebinutils project.
Re: [PATCH] MIPS gas/bfd: Relocation handling cleanup
- From: Thiemo Seufer <ica2_ts at csv dot ica dot uni-stuttgart dot de>
- To: binutils at sources dot redhat dot com
- Cc: Eric Christopher <echristo at redhat dot com>
- Date: Tue, 10 Jun 2003 14:21:09 +0200
- Subject: Re: [PATCH] MIPS gas/bfd: Relocation handling cleanup
- References: <20030527063742.GD18653@rembrandt.csv.ica.uni-stuttgart.de>
Thiemo Seufer wrote:> Hello All,> > this patch sanitizes the MIPS relocation handling, specifically the> zero-addend workarounds, the pcrel/gprel specialcases and some minor> fixes for cornercases.> > It enables also sane overflow checking from md_apply_fix3, the current> version checks the old addend value.> > Tested for mips-linux, mips64-linux, mips-sgi-irix6, mips-elf, mips-ecoff.> > > Thiemo> > > 2003-05-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>> > /bfd/ChangeLog> * elf32-mips.c (mips_elf_generic_reloc): New Function.> (elf_mips_howto_table_rel): Use it.> (gprel32_with_gp): Move prototype.> (mips_elf_hi16_reloc): Check for ! BSF_LOCAL instead of zero addend.> Use mips_elf_generic_reloc.> (mips_elf_got16_reloc): Check for ! BSF_LOCAL instead of zero addend.> Code cleanup.> (_bfd_mips_elf32_gprel16_reloc): Check for ! BSF_LOCAL instead of> zero addend.> (mips_elf_gprel32_reloc): Likewise. Use the same GP assignment logic> as in the other *_gprel*_reloc functions.> (gprel32_with_gp): Handle partial_inplace properly.> (mips32_64bit_reloc): Use mips_elf_generic_reloc.> (mips16_gprel_reloc): Check for ! BSF_LOCAL instead of zero addend.> Do addend handling directly instead of calling> _bfd_mips_elf_gprel16_with_gp. Handle partial_inplace properly.> * elf64-mips.c (mips_elf64_hi16_reloc): Check for ! BSF_LOCAL instead> of zero addend. Handle partial_inplace properly.> (mips_elf64_got16_reloc): Check for ! BSF_LOCAL instead of zero> addend.> (mips_elf64_gprel16_reloc): Likewise.> (mips_elf64_literal_reloc): Likewise.> (mips_elf64_gprel32_reloc): Likewise. Use the same GP assignment> logic as in the other *_gprel*_reloc functions. Handle> partial_inplace properly.> (mips_elf64_shift6_reloc): Check for ! BSF_LOCAL instead of zero> addend. Handle partial_inplace properly.> (mips16_gprel_reloc): Likewise. Do addend handling directly instead> of calling _bfd_mips_elf_gprel16_with_gp.> * elfn32-mips.c (mips_elf_got16_reloc): Check for BSF_LOCAL.> (mips_elf_gprel32_reloc): Check for ! BSF_LOCAL instead> of zero addend.> (mips_elf_shift6_reloc): Handle partial_inplace properly.> (mips16_gprel_reloc): Likewise. Do addend handling directly instead> of calling _bfd_mips_elf_gprel16_with_gp.> * elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Handle> partial_inplace properly. Fix wrong addend handling. Fix overflow> check.> (_bfd_mips_elf_sign_extend): Renamed from mips_elf_sign_extend and> exported.> (mips_elf_calculate_relocation): Use _bfd_mips_elf_sign_extend.> (_bfd_mips_elf_relocate_section): Likewise.> (mips_elf_create_dynamic_relocation): Update sec_info_type access.> * elfxx-mips.h (_bfd_mips_relax_section): Fix prototype declaration.> (_bfd_mips_elf_sign_extend): New prototype.> > /gas/ChangeLog> * config/tc-mips.c (md_pcrel_from): Return actual pcrel address.> (md_apply_fix3): Ignore non-special relocations. Remove superfluous> exceptions from size assert. Remove most of the addend fixup> specialcasing. Remove value, use valP directly. simplify fx_addnumber> handling. Remove zero addend specialcases.> (tc_gen_reloc): Use appropriate value for reloc2 addend. Remove> the addend fixup specialcase.> * config/tc-mips.h (MD_APPLY_SYM_VALUE): Define as 0.Ping?Thiemo
[8]ページ先頭