blob: a671cf8412cd4da81f79bfbe6d32e2c6c4ce1841 [file] [log] [blame]
Brad Bishop286d45c2018-10-02 15:21:57 -04001From 0cad227ce495a975b32c10a8b6b0970c45024dd6 Mon Sep 17 00:00:00 2001
2From: Nagaraju Mekala <nagaraju.mekala@xilinx.com>
3Date: Mon, 28 Aug 2017 19:53:58 -0700
4Subject: [PATCH] Fix bug in MicroBlaze TLSTPREL Relocation
5
6Fixed the problem related to the fixup/relocations TLSTPREL.
7When the fixup is applied the addend is not added at the correct offset
8of the instruction. The offset is hard coded considering its big endian
9and it fails for Little endian. This patch allows support for both
10big & little-endian compilers
11
12Signed-off-by: Nagaraju Mekala <nagaraju.mekala@xilinx.com>
13Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
14Upstream-Status: Pending
15
16---
17 bfd/elf32-microblaze.c | 4 ++--
18 1 file changed, 2 insertions(+), 2 deletions(-)
19
20diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
21index fc0d3e1..a94799f 100644
22--- a/bfd/elf32-microblaze.c
23+++ b/bfd/elf32-microblaze.c
24@@ -1402,9 +1402,9 @@ microblaze_elf_relocate_section (bfd *output_bfd,
25 relocation += addend;
26 relocation -= dtprel_base(info);
27 bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff,
28- contents + offset + 2);
29+ contents + offset + endian);
30 bfd_put_16 (input_bfd, relocation & 0xffff,
31- contents + offset + 2 + INST_WORD_SIZE);
32+ contents + offset + endian + INST_WORD_SIZE);
33 break;
34 case (int) R_MICROBLAZE_64_PCREL :
35 case (int) R_MICROBLAZE_64: