summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorCupertino Miranda <cmiranda@synopsys.com>2017-04-05 23:22:07 +0200
committerCupertino Miranda <cmiranda@synopsys.com>2017-06-08 19:00:37 +0200
commit64aa8e030360ba68e32ca15fa5aa426160a2efb1 (patch)
tree604413680545ffcc1009fb5d4a5ada19692baa71 /bfd
parenta0abe74332bd25aeb68acfadd74280c0f117c493 (diff)
downloadbinutils-gdb-64aa8e030360ba68e32ca15fa5aa426160a2efb1.tar.gz
[ARC] Fixed condition to generate TEXTREL.
TEXTREL was being generated even when relocatable .o files had the .rela.text section. Now it is limitted only to dynamic object files that still have them. Nevertheless, our target aborts in those cases due to architecture limitations where icache is not coherent with dcache, and to force this coherence expensive kernel level support would be needed. bfd/ChangeLog: Cupertino Miranda <cmiranda@synopsys.com> * elf32-arc.c (elf_arc_size_dynamic_sections): Changed condition to require TEXTREL.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arc.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7fb198a7d6f..6c4baf800cb 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2017-06-08 Cupertino Miranda <cmiranda@synopsys.com>
+ * elf32-arc.c (elf_arc_size_dynamic_sections): Changed condition to
+ require TEXTREL.
+
+2017-06-08 Cupertino Miranda <cmiranda@synopsys.com>
+
* arc-got.h (relocate_fix_got_relocs_for_got_info): Added TCB_SIZE to
patched section contents for TLS IE reloc.
* elf32-arc.c: Remove TCB_SIZE preprocessor macro.
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index c1286b2d614..03c00c38a65 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -2647,7 +2647,8 @@ elf_arc_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
const char *name = s->name + 5;
bfd *ibfd;
for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next)
- if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour)
+ if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour
+ && ibfd->flags & DYNAMIC)
{
asection *target = bfd_get_section_by_name (ibfd, name);
if (target != NULL