summaryrefslogtreecommitdiff
path: root/patches/binutils/2.25.1/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/binutils/2.25.1/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch')
-rw-r--r--patches/binutils/2.25.1/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch57
1 files changed, 0 insertions, 57 deletions
diff --git a/patches/binutils/2.25.1/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch b/patches/binutils/2.25.1/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch
deleted file mode 100644
index 9ad6b3b..0000000
--- a/patches/binutils/2.25.1/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 8ec76b16f62d1bf386fb2c39af5f66c3afddc5cb Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Thu, 14 May 2015 05:22:55 +0300
-Subject: [PATCH] xtensa: fix localized symbol refcounting with --gc-sections
-
-elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were
-made local, that results in link failure with the following message:
-
- BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line
- 3372 in elf_xtensa_finish_dynamic_sections
-
-elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by
-relocation type. Relocation types are not changed when symbol becomes
-local, but its PLT references are added to GOT references and
-plt.refcount is set to 0. Such symbol cannot be unreferences in the
-elf_xtensa_gc_sweep_hook and its extra references make calculated GOT
-relocations section size not match number of GOT relocations.
-
-Fix it by treating PLT reference as GOT reference when plt.refcount is
-not positive.
-
-2015-05-14 Max Filippov <jcmvbkbc@gmail.com>
-bfd/
- * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
- as GOT reference when plt.refcount is not positive.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: e6c9a083ec5ae7a45bd71682b26aae1939849388
-Changes to ChangeLog are dropped.
-
- bfd/elf32-xtensa.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
-index 53af1c6..2523670 100644
---- a/bfd/elf32-xtensa.c
-+++ b/bfd/elf32-xtensa.c
-@@ -1360,10 +1360,14 @@ elf_xtensa_gc_sweep_hook (bfd *abfd,
- {
- if (is_plt)
- {
-+ /* If the symbol has been localized its plt.refcount got moved
-+ to got.refcount. Handle it as GOT. */
- if (h->plt.refcount > 0)
- h->plt.refcount--;
-+ else
-+ is_got = TRUE;
- }
-- else if (is_got)
-+ if (is_got)
- {
- if (h->got.refcount > 0)
- h->got.refcount--;
---
-1.8.1.4
-