From c4c6fa82bf918ba59f46f1c60faa141dfb4a3686 Mon Sep 17 00:00:00 2001 From: echristo Date: Sat, 31 Dec 2005 05:02:22 +0000 Subject: [PATCH] 2005-12-30 Eric Christopher * elfxx-mips.c (mips_elf_record_global_got_symbol): Add assert to verify we have a got. (_bfd_mips_elf_check_relocs): Add R_MIPS_TLS_GOTTPREL to relocs needing a GOT. --- bfd/ChangeLog | 9 ++++++++- bfd/elfxx-mips.c | 10 +++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 69f65121a9..027d5a7d7e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2005-12-30 Eric Christopher + + * elfxx-mips.c (mips_elf_record_global_got_symbol): Add assert + to verify we have a got. + (_bfd_mips_elf_check_relocs): Add R_MIPS_TLS_GOTTPREL to relocs + needing a GOT. + 2005-12-30 John David Anglin * configure.host (hppa*64*-*-hpux*): Set host64 to true. @@ -106,7 +113,7 @@ to make it clear that parameter ABFD is not used. (hpux_core_core_file_matches_executable_p): Delete, replaced by macro pointing to generic_core_file_matches_executable_p. - + * aix386-core.c: Replace core_file_matches_executable_p null implementation by generic_core_file_matches_executable_p by using a macro. diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 6849048717..99a0def3b9 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -2637,6 +2637,9 @@ mips_elf_record_global_got_symbol (struct elf_link_hash_entry *h, return FALSE; } + /* Make sure we have a GOT to put this entry into. */ + BFD_ASSERT (g != NULL); + entry.abfd = abfd; entry.symndx = -1; entry.d.h = (struct mips_elf_link_hash_entry *) h; @@ -3980,7 +3983,7 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd, if (gnu_local_gp_p) symbol = gp; - + /* Figure out what kind of relocation is being performed. */ switch (r_type) { @@ -5997,6 +6000,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, case R_MIPS_GOT_PAGE: case R_MIPS_GOT_OFST: case R_MIPS_GOT_DISP: + case R_MIPS_TLS_GOTTPREL: case R_MIPS_TLS_GD: case R_MIPS_TLS_LDM: if (dynobj == NULL) @@ -8852,7 +8856,7 @@ _bfd_elf_mips_get_relocated_section_contents input_section, relocatable, data, gp); else - r = bfd_perform_relocation (input_bfd, *parent, data, + r = bfd_perform_relocation (input_bfd, *parent, data, input_section, relocatable ? abfd : NULL, &error_message); @@ -9005,7 +9009,7 @@ _bfd_mips_elf_final_link (bfd *abfd, struct bfd_link_info *info) && !(*bed->elf_backend_omit_section_dynsym) (abfd, info, p)) ++ dynsecsymcount; } - + if (! mips_elf_sort_hash_table (info, dynsecsymcount + 1)) return FALSE; -- 2.11.0