This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] [ARC] Fixed condition to generate TEXTREL.
- From: Cupertino Miranda <cmiranda at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 8 Jun 2017 17:01:57 -0000
- Subject: [binutils-gdb] [ARC] Fixed condition to generate TEXTREL.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=64aa8e030360ba68e32ca15fa5aa426160a2efb1
commit 64aa8e030360ba68e32ca15fa5aa426160a2efb1
Author: Cupertino Miranda <cmiranda@synopsys.com>
Date: Wed Apr 5 23:22:07 2017 +0200
[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.
Diff:
---
bfd/ChangeLog | 5 +++++
bfd/elf32-arc.c | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7fb198a..6c4baf8 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 c1286b2..03c00c3 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