summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/binutils/binutils/0017-Do-not-emit-R_RISCV_NONE-reloc-in-the-extra-unused-r.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0017-Do-not-emit-R_RISCV_NONE-reloc-in-the-extra-unused-r.patch')
-rw-r--r--meta/recipes-devtools/binutils/binutils/0017-Do-not-emit-R_RISCV_NONE-reloc-in-the-extra-unused-r.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0017-Do-not-emit-R_RISCV_NONE-reloc-in-the-extra-unused-r.patch b/meta/recipes-devtools/binutils/binutils/0017-Do-not-emit-R_RISCV_NONE-reloc-in-the-extra-unused-r.patch
new file mode 100644
index 0000000000..99bb38eb67
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0017-Do-not-emit-R_RISCV_NONE-reloc-in-the-extra-unused-r.patch
@@ -0,0 +1,42 @@
+From 5b61c40c34c3db699de723c3128ba704501ccdac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 20 Apr 2020 14:23:57 -0700
+Subject: [PATCH 17/17] Do not emit R_RISCV_NONE reloc in the extra unused
+ reloc space.
+
+Redundant R_RISCV_DTPMOD* R_RISCV_DTPREL* results from Global Dynamic -> Local Exec relaxation
+which generates
+
+Patch from https://sourceware.org/bugzilla/show_bug.cgi?id=24673
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ bfd/elfnn-riscv.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
+index a5fa415309a..1e582052aa9 100644
+--- a/bfd/elfnn-riscv.c
++++ b/bfd/elfnn-riscv.c
+@@ -2090,13 +2090,14 @@ riscv_elf_relocate_section (bfd *output_bfd,
+ pic = bfd_link_pic (info);
+
+ if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, pic, h)
+- && (!pic || !SYMBOL_REFERENCES_LOCAL (info, h)))
++ && (bfd_link_dll (info)
++ || !SYMBOL_REFERENCES_LOCAL (info, h)))
+ indx = h->dynindx;
+ }
+
+ /* The GOT entries have not been initialized yet. Do it
+ now, and emit any relocations. */
+- if ((bfd_link_pic (info) || indx != 0)
++ if ((bfd_link_dll (info) || indx != 0)
+ && (h == NULL
+ || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+ || h->root.type != bfd_link_hash_undefweak))
+--
+2.28.0
+