diff options
author | Cupertino Miranda <cmiranda@synopsys.com> | 2017-04-05 23:22:07 +0200 |
---|---|---|
committer | Cupertino Miranda <cmiranda@synopsys.com> | 2017-06-08 19:00:37 +0200 |
commit | 64aa8e030360ba68e32ca15fa5aa426160a2efb1 (patch) | |
tree | 604413680545ffcc1009fb5d4a5ada19692baa71 /bfd | |
parent | a0abe74332bd25aeb68acfadd74280c0f117c493 (diff) | |
download | gdb-64aa8e030360ba68e32ca15fa5aa426160a2efb1.zip gdb-64aa8e030360ba68e32ca15fa5aa426160a2efb1.tar.gz gdb-64aa8e030360ba68e32ca15fa5aa426160a2efb1.tar.bz2 |
[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/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arc.c | 3 |
2 files changed, 7 insertions, 1 deletions
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 |