diff options
Diffstat (limited to 'packages/binutils/2.23.2/0012-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch')
-rw-r--r-- | packages/binutils/2.23.2/0012-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/packages/binutils/2.23.2/0012-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch b/packages/binutils/2.23.2/0012-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch deleted file mode 100644 index 624ce116..00000000 --- a/packages/binutils/2.23.2/0012-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch +++ /dev/null @@ -1,52 +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(-) - ---- a/bfd/elf32-xtensa.c -+++ b/bfd/elf32-xtensa.c -@@ -1362,10 +1362,14 @@ - { - 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--; |