aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r--bfd/ChangeLog61
1 files changed, 61 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c2fcf00..19ae632 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,64 @@
+2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19636
+ PR ld/19704
+ PR ld/19719
+ * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
+ (elf_i386_link_hash_entry): Add has_got_reloc and
+ has_non_got_reloc.
+ (elf_i386_link_hash_table): Add interp.
+ (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
+ has_non_got_reloc.
+ (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
+ has_non_got_reloc.
+ (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
+ (elf_i386_fixup_symbol): New function.
+ (elf_i386_pie_finish_undefweak_symbol): Likewise.
+ (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
+ relocations and discard relocations against resolved undefined
+ weak symbols in executable. Don't make resolved undefined weak
+ symbols in executable dynamic. Keep dynamic non-GOT/non-PLT
+ relocation against undefined weak symbols in PIE.
+ (elf_i386_size_dynamic_sections): Set interp to .interp section.
+ (elf_i386_relocate_section): Don't generate dynamic relocations
+ against resolved undefined weak symbols in PIE, except for
+ R_386_PC32.
+ (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
+ dynamic PLT/GOT relocations for resolved undefined weak symbols.
+ Don't generate dynamic relocation against resolved undefined weak
+ symbol in executable.
+ (elf_i386_finish_dynamic_sections): Call
+ elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
+ (elf_backend_fixup_symbol): New.
+ * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
+ (elf_x86_64_link_hash_entry): Add has_got_reloc and
+ has_non_got_reloc.
+ (elf_x86_64_link_hash_table): Add interp.
+ (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
+ has_non_got_reloc.
+ (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
+ has_non_got_reloc.
+ (elf_x86_64_check_relocs): Set has_got_reloc and
+ has_non_got_reloc.
+ (elf_x86_64_fixup_symbol): New function.
+ (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
+ (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
+ relocations and discard relocations against resolved undefined
+ weak symbols in executable. Don't make resolved undefined weak
+ symbols in executable dynamic.
+ (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
+ (elf_x86_64_relocate_section): Check relocation overflow for
+ dynamic relocations against unresolved weak undefined symbols.
+ Don't generate dynamic relocations against resolved weak
+ undefined symbols in PIE.
+ (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
+ dynamic PLT/GOT relocations for resolved undefined weak symbols.
+ Don't generate dynamic relocation against resolved undefined weak
+ symbol in executable.
+ (elf_x86_64_finish_dynamic_sections): Call
+ elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
+ (elf_backend_fixup_symbol): New.
+
2016-02-26 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (create_linkage_sections): Create sfpr when