diff options
Diffstat (limited to 'bfd/elf32-i370.c')
-rw-r--r-- | bfd/elf32-i370.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/bfd/elf32-i370.c b/bfd/elf32-i370.c index a44ff4c..75a92f5 100644 --- a/bfd/elf32-i370.c +++ b/bfd/elf32-i370.c @@ -500,14 +500,11 @@ i370_elf_adjust_dynamic_symbol (info, h) /* Make sure we know what is going on here. */ BFD_ASSERT (dynobj != NULL - && ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) + && (h->needs_plt || h->weakdef != NULL - || ((h->elf_link_hash_flags - & ELF_LINK_HASH_DEF_DYNAMIC) != 0 - && (h->elf_link_hash_flags - & ELF_LINK_HASH_REF_REGULAR) != 0 - && (h->elf_link_hash_flags - & ELF_LINK_HASH_DEF_REGULAR) == 0))); + || (h->def_dynamic + && h->ref_regular + && !h->def_regular))); s = bfd_get_section_by_name (dynobj, ".rela.text"); BFD_ASSERT (s != NULL); @@ -569,7 +566,7 @@ i370_elf_adjust_dynamic_symbol (info, h) srel = bfd_get_section_by_name (dynobj, ".rela.bss"); BFD_ASSERT (srel != NULL); srel->size += sizeof (Elf32_External_Rela); - h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_COPY; + h->needs_copy = 1; } /* We need to figure out the alignment required for this symbol. I @@ -1218,8 +1215,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section, sec = h->root.u.def.section; if (info->shared && ((! info->symbolic && h->dynindx != -1) - || (h->elf_link_hash_flags - & ELF_LINK_HASH_DEF_REGULAR) == 0) + || !h->def_regular) && (input_section->flags & SEC_ALLOC) != 0 && (r_type == R_I370_ADDR31 || r_type == R_I370_COPY @@ -1338,8 +1334,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section, become local. */ else if (h != NULL && ((! info->symbolic && h->dynindx != -1) - || (h->elf_link_hash_flags - & ELF_LINK_HASH_DEF_REGULAR) == 0)) + || !h->def_regular)) { BFD_ASSERT (h->dynindx != -1); outrel.r_info = ELF32_R_INFO (h->dynindx, r_type); |