2ffc628448
- Patch 0100-elf32-arm-no-data-fix.patch is upstream as of commit 6342be709e8749d0a44c02e1876ddca360bfd52f, so it is removed. - Patch 0130-tc-xtensa.c-fixup-xg_reverse_shift_count-typo.patch is upstream as of commit 78fb7e37eb8bb08ae537d6c487996ff17c810332, so it is removed. - Patch 0900-Revert-part-Set-dynamic-tag-VMA-and-size-from-dynami.patch is upstream as of commit c646b02fdcae5f37bd88f33a0c4683ef13ad5c82, so it is removed. - All other patches are kept, just refreshed to apply cleanly on the new binutils version. Signed-off-by: Adam Duskett <Adamduskett@outlook.com> [Thomas: improve commit log.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
34 lines
1.4 KiB
Diff
34 lines
1.4 KiB
Diff
Fix ld segfault for microblaze when --gc-sections is used
|
|
Upstream: pending
|
|
https://sourceware.org/bugzilla/show_bug.cgi?id=21180
|
|
|
|
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
|
|
|
diff -Nur a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
|
|
--- a/bfd/elf32-microblaze.c 2016-08-03 09:36:50.000000000 +0200
|
|
+++ b/bfd/elf32-microblaze.c 2017-02-23 19:43:12.612313590 +0100
|
|
@@ -3233,13 +3233,20 @@
|
|
|| h->dynindx == -1))
|
|
{
|
|
asection *sec = h->root.u.def.section;
|
|
+ bfd_vma value;
|
|
+
|
|
+ value = h->root.u.def.value;
|
|
+ if (sec->output_section != NULL)
|
|
+ /* PR 21180: If the output section is NULL, then the symbol is no
|
|
+ longer needed, and in theory the GOT entry is redundant. But
|
|
+ it is too late to change our minds now... */
|
|
+ value += sec->output_section->vma + sec->output_offset;
|
|
+
|
|
microblaze_elf_output_dynamic_relocation (output_bfd,
|
|
srela, srela->reloc_count++,
|
|
/* symindex= */ 0,
|
|
R_MICROBLAZE_REL, offset,
|
|
- h->root.u.def.value
|
|
- + sec->output_section->vma
|
|
- + sec->output_offset);
|
|
+ value);
|
|
}
|
|
else
|
|
{
|