diff options
Diffstat (limited to 'toolchain/binutils/patches/2.28/001-ELF-BFD-Limit-_bfd_elf_link_renumber_dynsyms-call-in.patch')
-rw-r--r-- | toolchain/binutils/patches/2.28/001-ELF-BFD-Limit-_bfd_elf_link_renumber_dynsyms-call-in.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/toolchain/binutils/patches/2.28/001-ELF-BFD-Limit-_bfd_elf_link_renumber_dynsyms-call-in.patch b/toolchain/binutils/patches/2.28/001-ELF-BFD-Limit-_bfd_elf_link_renumber_dynsyms-call-in.patch new file mode 100644 index 0000000000..e2587b81e0 --- /dev/null +++ b/toolchain/binutils/patches/2.28/001-ELF-BFD-Limit-_bfd_elf_link_renumber_dynsyms-call-in.patch @@ -0,0 +1,52 @@ +From 2424aef3a744bc6ca4099a655065c70a63f0fb49 Mon Sep 17 00:00:00 2001 +From: "Maciej W. Rozycki" <macro@imgtec.com> +Date: Wed, 26 Apr 2017 22:18:13 +0100 +Subject: ELF/BFD: Limit `_bfd_elf_link_renumber_dynsyms' call in section GC + +Consistently call `_bfd_elf_link_renumber_dynsyms' only if linking a +dynamic binary, complementing code in `bfd_elf_size_dynsym_hash_dynstr' +and commit ccabcbe51e85 ("New attempt at fixing MIPS --gc-sections et +al."), <https://sourceware.org/ml/binutils/2005-08/msg00258.html>. + + bfd/ + * elflink.c (elf_gc_sweep): Only call + `_bfd_elf_link_renumber_dynsyms' if dynamic sections have been + created. + +(backported from commit c46cec3a8cfe02fbe0f6c67ba53abc5369c5c659) +--- + bfd/ChangeLog | 6 ++++++ + bfd/elflink.c | 3 ++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/bfd/ChangeLog b/bfd/ChangeLog +index 85c6a817e5..537ebb5e2c 100644 +--- a/bfd/ChangeLog ++++ b/bfd/ChangeLog +@@ -1,3 +1,9 @@ ++2017-04-26 Maciej W. Rozycki <macro@imgtec.com> ++ ++ * elflink.c (elf_gc_sweep): Only call ++ `_bfd_elf_link_renumber_dynsyms' if dynamic sections have been ++ created. ++ + 2017-03-02 Tristan Gingold <gingold@adacore.com> + + * version.m4: Bump version to 2.28 +diff --git a/bfd/elflink.c b/bfd/elflink.c +index 69b66f2831..75d6543dcc 100644 +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -12986,7 +12986,8 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info) + elf_link_hash_traverse (elf_hash_table (info), elf_gc_sweep_symbol, + &sweep_info); + +- _bfd_elf_link_renumber_dynsyms (abfd, info, §ion_sym_count); ++ if (elf_hash_table (info)->dynamic_sections_created) ++ _bfd_elf_link_renumber_dynsyms (abfd, info, §ion_sym_count); + return TRUE; + } + +-- +2.11.0 + |