2005-04-04 Eric Christopher <echristo@redhat.com>
* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): Clean up gp handling code.
This commit is contained in:
parent
da9f89d4e2
commit
8236346f46
@ -1,3 +1,8 @@
|
||||
2005-04-04 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents):
|
||||
Clean up gp handling code.
|
||||
|
||||
2005-04-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf.c (bfd_elf_set_group_contents): Ignore linker created
|
||||
|
@ -8754,30 +8754,21 @@ _bfd_elf_mips_get_relocated_section_contents
|
||||
/* Specific to MIPS: Deal with relocation types that require
|
||||
knowing the gp of the output bfd. */
|
||||
asymbol *sym = *(*parent)->sym_ptr_ptr;
|
||||
if (bfd_is_abs_section (sym->section) && abfd)
|
||||
{
|
||||
/* The special_function wouldn't get called anyway. */
|
||||
}
|
||||
else if (!gp_found)
|
||||
{
|
||||
/* The gp isn't there; let the special function code
|
||||
fall over on its own. */
|
||||
}
|
||||
else if ((*parent)->howto->special_function
|
||||
== _bfd_mips_elf32_gprel16_reloc)
|
||||
{
|
||||
/* bypass special_function call */
|
||||
r = _bfd_mips_elf_gprel16_with_gp (input_bfd, sym, *parent,
|
||||
input_section, relocatable,
|
||||
data, gp);
|
||||
goto skip_bfd_perform_relocation;
|
||||
}
|
||||
/* end mips specific stuff */
|
||||
|
||||
r = bfd_perform_relocation (input_bfd, *parent, data, input_section,
|
||||
relocatable ? abfd : NULL,
|
||||
&error_message);
|
||||
skip_bfd_perform_relocation:
|
||||
/* If we've managed to find the gp and have a special
|
||||
function for the relocation then go ahead, else default
|
||||
to the generic handling. */
|
||||
if (gp_found
|
||||
&& (*parent)->howto->special_function
|
||||
== _bfd_mips_elf32_gprel16_reloc)
|
||||
r = _bfd_mips_elf_gprel16_with_gp (input_bfd, sym, *parent,
|
||||
input_section, relocatable,
|
||||
data, gp);
|
||||
else
|
||||
r = bfd_perform_relocation (input_bfd, *parent, data,
|
||||
input_section,
|
||||
relocatable ? abfd : NULL,
|
||||
&error_message);
|
||||
|
||||
if (relocatable)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user