* elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3.
(mips_elf64_final_gp): Don't make up gp value. * elfn32-mips.c (mips_elf_final_gp): Likewise. * elfxx-mips.c (_bfd_mips_elf_final_link): Always create .MIPS.options/.options section.
This commit is contained in:
parent
419586656d
commit
a902ee94b7
4 changed files with 17 additions and 4 deletions
|
@ -1,3 +1,11 @@
|
|||
2002-09-17 Stan Cox <scox@redhat.com>
|
||||
|
||||
* elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3.
|
||||
(mips_elf64_final_gp): Don't make up gp value.
|
||||
* elfn32-mips.c (mips_elf_final_gp): Likewise.
|
||||
* elfxx-mips.c (_bfd_mips_elf_final_link): Always create
|
||||
.MIPS.options/.options section.
|
||||
|
||||
2002-09-17 David O'Brien <obrien@FreeBSD.org>
|
||||
|
||||
* elf32-i386-fbsd.c: Always label using the EI_OSABI method.
|
||||
|
|
|
@ -1337,13 +1337,15 @@ mips_elf64_be_swap_reloc_out (abfd, src, dst)
|
|||
|
||||
mirel.r_offset = src[0].r_offset;
|
||||
BFD_ASSERT(src[0].r_offset == src[1].r_offset);
|
||||
#if 0
|
||||
BFD_ASSERT(src[0].r_offset == src[2].r_offset);
|
||||
#endif
|
||||
|
||||
mirel.r_type = ELF64_MIPS_R_TYPE (src[0].r_info);
|
||||
mirel.r_sym = ELF64_R_SYM (src[0].r_info);
|
||||
mirel.r_type2 = ELF64_MIPS_R_TYPE2 (src[1].r_info);
|
||||
mirel.r_type2 = ELF64_MIPS_R_TYPE (src[1].r_info);
|
||||
mirel.r_ssym = ELF64_MIPS_R_SSYM (src[1].r_info);
|
||||
mirel.r_type3 = ELF64_MIPS_R_TYPE3 (src[2].r_info);
|
||||
mirel.r_type3 = ELF64_MIPS_R_TYPE (src[2].r_info);
|
||||
|
||||
mips_elf64_swap_reloc_out (abfd, &mirel,
|
||||
(Elf64_Mips_External_Rel *) dst);
|
||||
|
@ -1525,7 +1527,7 @@ mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
|
|||
if (relocateable)
|
||||
{
|
||||
/* Make up a value. */
|
||||
*pgp = symbol->section->output_section->vma + 0x4000;
|
||||
*pgp = symbol->section->output_section->vma /*+ 0x4000*/;
|
||||
_bfd_set_gp_value (output_bfd, *pgp);
|
||||
}
|
||||
else if (!mips_elf64_assign_gp (output_bfd, pgp))
|
||||
|
|
|
@ -1505,7 +1505,7 @@ mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp)
|
|||
if (relocateable)
|
||||
{
|
||||
/* Make up a value. */
|
||||
*pgp = symbol->section->output_section->vma + 0x4000;
|
||||
*pgp = symbol->section->output_section->vma /*+ 0x4000*/;
|
||||
_bfd_set_gp_value (output_bfd, *pgp);
|
||||
}
|
||||
else if (!mips_elf_assign_gp (output_bfd, pgp))
|
||||
|
|
|
@ -6984,6 +6984,8 @@ _bfd_mips_elf_final_link (abfd, info)
|
|||
<= g->global_gotno);
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* We want to set the GP value for ld -r. */
|
||||
/* On IRIX5, we omit the .options section. On IRIX6, however, we
|
||||
include it, even though we don't process it quite right. (Some
|
||||
entries are supposed to be merged.) Empirically, we seem to be
|
||||
|
@ -7021,6 +7023,7 @@ _bfd_mips_elf_final_link (abfd, info)
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Get a value for the GP register. */
|
||||
if (elf_gp (abfd) == 0)
|
||||
|
|
Loading…
Reference in a new issue