Update patch

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2023-06-23 15:51:47 +03:00
parent c5ed067169
commit 9037438540
Signed by: davidlt
GPG Key ID: 8B7F1DA0E2C9FDBB

View File

@ -27,12 +27,12 @@ bfd/
1 file changed, 28 insertions(+), 13 deletions(-) 1 file changed, 28 insertions(+), 13 deletions(-)
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 762ea231c0b..30d2faa405d 100644 index ee2d19f7..d02c4a29 100644
--- a/bfd/elfnn-riscv.c --- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c
@@ -111,6 +111,25 @@ @@ -38,6 +38,25 @@
|| (bfd_link_pic (INFO) \ #define CHAR_BIT 8
&& SYMBOL_REFERENCES_LOCAL ((INFO), (H)))) #endif
+/* Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations, and INDX will +/* Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations, and INDX will
+ be the dynamic index. PR22263, use the same check in allocate_dynrelocs and + be the dynamic index. PR22263, use the same check in allocate_dynrelocs and
@ -56,7 +56,7 @@ index 762ea231c0b..30d2faa405d 100644
/* Internal relocations used exclusively by the relaxation pass. */ /* Internal relocations used exclusively by the relaxation pass. */
#define R_RISCV_DELETE (R_RISCV_max + 1) #define R_RISCV_DELETE (R_RISCV_max + 1)
@@ -1297,18 +1316,24 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) @@ -1186,18 +1205,24 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
dyn = htab->elf.dynamic_sections_created; dyn = htab->elf.dynamic_sections_created;
if (tls_type & (GOT_TLS_GD | GOT_TLS_IE)) if (tls_type & (GOT_TLS_GD | GOT_TLS_IE))
{ {
@ -83,7 +83,7 @@ index 762ea231c0b..30d2faa405d 100644
} }
} }
else else
@@ -2882,20 +2907,10 @@ riscv_elf_relocate_section (bfd *output_bfd, @@ -2691,20 +2716,10 @@ riscv_elf_relocate_section (bfd *output_bfd,
abort (); abort ();
bool dyn = elf_hash_table (info)->dynamic_sections_created; bool dyn = elf_hash_table (info)->dynamic_sections_created;