From a902ee94b7b0212607630a2c0920565f01899051 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Wed, 18 Sep 2002 01:38:20 +0000 Subject: * 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. --- bfd/ChangeLog | 8 ++++++++ bfd/elf64-mips.c | 8 +++++--- bfd/elfn32-mips.c | 2 +- bfd/elfxx-mips.c | 3 +++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4c0cbc7..ce930f8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2002-09-17 Stan Cox + + * 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 * elf32-i386-fbsd.c: Always label using the EI_OSABI method. diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index 95abaff..cc7ec40 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -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)) diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 040fddf..916b16b 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -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)) diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 5132693..8da904b 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -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) -- cgit v1.1