diff options
author | Cupertino Miranda <cmiranda@synopsys.com> | 2016-12-07 14:22:54 +0100 |
---|---|---|
committer | Cupertino Miranda <cmiranda@synopsys.com> | 2017-06-08 18:38:50 +0200 |
commit | be9e3704f91190c1e1c5d253494423b13c982d93 (patch) | |
tree | 6bf7e21f6f8560f203c9622d60bc667aeff664ba /bfd | |
parent | b8b6e72f3db1f798680742c02f3dc220175d0757 (diff) | |
download | gdb-be9e3704f91190c1e1c5d253494423b13c982d93.zip gdb-be9e3704f91190c1e1c5d253494423b13c982d93.tar.gz gdb-be9e3704f91190c1e1c5d253494423b13c982d93.tar.bz2 |
[ARC] Avoid creating dynamic relocs when static linked is requested.
bfd/Changelog:
Cupertino Miranda <cmiranda@synopsys.com>
* elf32-arc.c (ADD_RELA): Changed to only work when dynamic object is
created.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arc.c | 25 |
2 files changed, 19 insertions, 11 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 65e7dae..6d8e9b1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2017-06-08 Cupertino Miranda <cmiranda@synopsys.com> + + * elf32-arc.c (ADD_RELA): Changed to only work when dynamic + object is created. + 2017-06-08 Richard Earnshaw <rearnsha@arm.com> * elf32-arm.c (elf32_arm_merge_eabi_attributes): Remove assertion diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index ef0d893..747faf9 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -55,17 +55,20 @@ name_for_global_symbol (struct elf_link_hash_entry *h) Elf_Internal_Rela _rel; \ bfd_byte * _loc; \ \ - BFD_ASSERT (_htab->srel##SECTION &&_htab->srel##SECTION->contents); \ - _loc = _htab->srel##SECTION->contents \ - + ((_htab->srel##SECTION->reloc_count) \ - * sizeof (Elf32_External_Rela)); \ - _htab->srel##SECTION->reloc_count++; \ - _rel.r_addend = ADDEND; \ - _rel.r_offset = (_htab->s##SECTION)->output_section->vma \ - + (_htab->s##SECTION)->output_offset + OFFSET; \ - BFD_ASSERT ((long) SYM_IDX != -1); \ - _rel.r_info = ELF32_R_INFO (SYM_IDX, TYPE); \ - bfd_elf32_swap_reloca_out (BFD, &_rel, _loc); \ + if (_htab->dynamic_sections_created == TRUE) \ + { \ + BFD_ASSERT (_htab->srel##SECTION &&_htab->srel##SECTION->contents); \ + _loc = _htab->srel##SECTION->contents \ + + ((_htab->srel##SECTION->reloc_count) \ + * sizeof (Elf32_External_Rela)); \ + _htab->srel##SECTION->reloc_count++; \ + _rel.r_addend = ADDEND; \ + _rel.r_offset = (_htab->s##SECTION)->output_section->vma \ + + (_htab->s##SECTION)->output_offset + OFFSET; \ + BFD_ASSERT ((long) SYM_IDX != -1); \ + _rel.r_info = ELF32_R_INFO (SYM_IDX, TYPE); \ + bfd_elf32_swap_reloca_out (BFD, &_rel, _loc); \ + } \ } |