Lines Matching refs:htab

2297 reloc_section_p (struct elf32_arm_link_hash_table *htab,  in reloc_section_p()  argument
2300 if (htab->use_rel) in reloc_section_p()
2312 struct elf32_arm_link_hash_table *htab; in create_got_section() local
2314 htab = elf32_arm_hash_table (info); in create_got_section()
2316 if (htab->symbian_p) in create_got_section()
2322 htab->sgot = bfd_get_section_by_name (dynobj, ".got"); in create_got_section()
2323 htab->sgotplt = bfd_get_section_by_name (dynobj, ".got.plt"); in create_got_section()
2324 if (!htab->sgot || !htab->sgotplt) in create_got_section()
2327 htab->srelgot = bfd_make_section_with_flags (dynobj, in create_got_section()
2328 RELOC_SECTION (htab, ".got"), in create_got_section()
2334 if (htab->srelgot == NULL in create_got_section()
2335 || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) in create_got_section()
2347 struct elf32_arm_link_hash_table *htab; in elf32_arm_create_dynamic_sections() local
2349 htab = elf32_arm_hash_table (info); in elf32_arm_create_dynamic_sections()
2350 if (!htab->sgot && !create_got_section (dynobj, info)) in elf32_arm_create_dynamic_sections()
2356 htab->splt = bfd_get_section_by_name (dynobj, ".plt"); in elf32_arm_create_dynamic_sections()
2357 htab->srelplt = bfd_get_section_by_name (dynobj, in elf32_arm_create_dynamic_sections()
2358 RELOC_SECTION (htab, ".plt")); in elf32_arm_create_dynamic_sections()
2359 htab->sdynbss = bfd_get_section_by_name (dynobj, ".dynbss"); in elf32_arm_create_dynamic_sections()
2361 htab->srelbss = bfd_get_section_by_name (dynobj, in elf32_arm_create_dynamic_sections()
2362 RELOC_SECTION (htab, ".bss")); in elf32_arm_create_dynamic_sections()
2364 if (htab->vxworks_p) in elf32_arm_create_dynamic_sections()
2366 if (!elf_vxworks_create_dynamic_sections (dynobj, info, &htab->srelplt2)) in elf32_arm_create_dynamic_sections()
2371 htab->plt_header_size = 0; in elf32_arm_create_dynamic_sections()
2372 htab->plt_entry_size in elf32_arm_create_dynamic_sections()
2377 htab->plt_header_size in elf32_arm_create_dynamic_sections()
2379 htab->plt_entry_size in elf32_arm_create_dynamic_sections()
2384 if (!htab->splt in elf32_arm_create_dynamic_sections()
2385 || !htab->srelplt in elf32_arm_create_dynamic_sections()
2386 || !htab->sdynbss in elf32_arm_create_dynamic_sections()
2387 || (!info->shared && !htab->srelbss)) in elf32_arm_create_dynamic_sections()
4009 put_arm_insn (struct elf32_arm_link_hash_table *htab, in put_arm_insn() argument
4012 if (htab->byteswap_code != bfd_little_endian (output_bfd)) in put_arm_insn()
4023 put_thumb_insn (struct elf32_arm_link_hash_table *htab, in put_thumb_insn() argument
4026 if (htab->byteswap_code != bfd_little_endian (output_bfd)) in put_thumb_insn()
4397 struct elf_link_hash_table *htab = elf_hash_table (info); in tpoff() local
4401 if (htab->tls_sec == NULL) in tpoff()
4403 base = align_power ((bfd_vma) TCB_SIZE, htab->tls_sec->alignment_power); in tpoff()
4404 return address - htab->tls_sec->vma + base; in tpoff()
4714 struct elf_link_hash_table *htab = elf_hash_table (info); in elf32_arm_final_link_relocate() local
4717 && htab->data_index_section != NULL) in elf32_arm_final_link_relocate()
4718 osec = htab->data_index_section; in elf32_arm_final_link_relocate()
4720 osec = htab->text_index_section; in elf32_arm_final_link_relocate()
7544 struct elf32_arm_link_hash_table *htab; in elf32_arm_check_relocs() local
7549 htab = elf32_arm_hash_table (info); in elf32_arm_check_relocs()
7554 if (htab->root.is_relocatable_executable in elf32_arm_check_relocs()
7555 && ! htab->root.dynamic_sections_created) in elf32_arm_check_relocs()
7582 r_type = arm_real_reloc_type (htab, r_type); in elf32_arm_check_relocs()
7668 htab->tls_ldm_got.refcount++; in elf32_arm_check_relocs()
7673 if (htab->sgot == NULL) in elf32_arm_check_relocs()
7675 if (htab->root.dynobj == NULL) in elf32_arm_check_relocs()
7676 htab->root.dynobj = abfd; in elf32_arm_check_relocs()
7677 if (!create_got_section (htab->root.dynobj, info)) in elf32_arm_check_relocs()
7685 if (!htab->vxworks_p) in elf32_arm_check_relocs()
7764 if ((info->shared || htab->root.is_relocatable_executable) in elf32_arm_check_relocs()
7786 BFD_ASSERT (reloc_section_p (htab, name, sec)); in elf32_arm_check_relocs()
7798 && !htab->symbian_p) in elf32_arm_check_relocs()
7826 s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, in elf32_arm_check_relocs()
7840 p = bfd_alloc (htab->root.dynobj, amt); in elf32_arm_check_relocs()
8187 struct elf32_arm_link_hash_table *htab; in allocate_dynrelocs() local
8203 htab = elf32_arm_hash_table (info); in allocate_dynrelocs()
8205 if (htab->root.dynamic_sections_created in allocate_dynrelocs()
8220 asection *s = htab->splt; in allocate_dynrelocs()
8225 s->size += htab->plt_header_size; in allocate_dynrelocs()
8231 if (!htab->use_blx && eh->plt_thumb_refcount > 0) in allocate_dynrelocs()
8256 s->size += htab->plt_entry_size; in allocate_dynrelocs()
8258 if (!htab->symbian_p) in allocate_dynrelocs()
8262 eh->plt_got_offset = htab->sgotplt->size; in allocate_dynrelocs()
8263 htab->sgotplt->size += 4; in allocate_dynrelocs()
8267 htab->srelplt->size += RELOC_SIZE (htab); in allocate_dynrelocs()
8272 if (htab->vxworks_p && !info->shared) in allocate_dynrelocs()
8276 if (h->plt.offset == htab->plt_header_size) in allocate_dynrelocs()
8277 htab->srelplt2->size += RELOC_SIZE (htab); in allocate_dynrelocs()
8282 htab->srelplt2->size += RELOC_SIZE (htab) * 2; in allocate_dynrelocs()
8313 if (!htab->symbian_p) in allocate_dynrelocs()
8315 s = htab->sgot; in allocate_dynrelocs()
8334 dyn = htab->root.dynamic_sections_created; in allocate_dynrelocs()
8348 htab->srelgot->size += RELOC_SIZE (htab); in allocate_dynrelocs()
8351 htab->srelgot->size += RELOC_SIZE (htab); in allocate_dynrelocs()
8354 htab->srelgot->size += RELOC_SIZE (htab); in allocate_dynrelocs()
8360 htab->srelgot->size += RELOC_SIZE (htab); in allocate_dynrelocs()
8367 if (!htab->use_blx && h->dynindx != -1 in allocate_dynrelocs()
8406 if (info->shared || htab->root.is_relocatable_executable) in allocate_dynrelocs()
8447 else if (htab->root.is_relocatable_executable && h->dynindx == -1 in allocate_dynrelocs()
8467 || (htab->root.dynamic_sections_created in allocate_dynrelocs()
8495 sreloc->size += p->count * RELOC_SIZE (htab); in allocate_dynrelocs()
8551 struct elf32_arm_link_hash_table *htab; in elf32_arm_size_dynamic_sections() local
8553 htab = elf32_arm_hash_table (info); in elf32_arm_size_dynamic_sections()
8556 check_use_blx (htab); in elf32_arm_size_dynamic_sections()
8601 srel->size += p->count * RELOC_SIZE (htab); in elf32_arm_size_dynamic_sections()
8616 s = htab->sgot; in elf32_arm_size_dynamic_sections()
8617 srel = htab->srelgot; in elf32_arm_size_dynamic_sections()
8632 srel->size += RELOC_SIZE (htab); in elf32_arm_size_dynamic_sections()
8639 if (htab->tls_ldm_got.refcount > 0) in elf32_arm_size_dynamic_sections()
8643 htab->tls_ldm_got.offset = htab->sgot->size; in elf32_arm_size_dynamic_sections()
8644 htab->sgot->size += 8; in elf32_arm_size_dynamic_sections()
8646 htab->srelgot->size += RELOC_SIZE (htab); in elf32_arm_size_dynamic_sections()
8649 htab->tls_ldm_got.offset = -1; in elf32_arm_size_dynamic_sections()
8653 elf_link_hash_traverse (& htab->root, allocate_dynrelocs, info); in elf32_arm_size_dynamic_sections()
8695 if (s != htab->srelplt && s != htab->srelplt2) in elf32_arm_size_dynamic_sections()
8755 htab->use_rel ? DT_REL : DT_RELA) in elf32_arm_size_dynamic_sections()
8762 if (htab->use_rel) in elf32_arm_size_dynamic_sections()
8766 || !add_dynamic_entry (DT_RELENT, RELOC_SIZE (htab))) in elf32_arm_size_dynamic_sections()
8773 || !add_dynamic_entry (DT_RELAENT, RELOC_SIZE (htab))) in elf32_arm_size_dynamic_sections()
8781 elf_link_hash_traverse (&htab->root, elf32_arm_readonly_dynrelocs, in elf32_arm_size_dynamic_sections()
8803 struct elf32_arm_link_hash_table *htab; in elf32_arm_finish_dynamic_symbol() local
8807 htab = elf32_arm_hash_table (info); in elf32_arm_finish_dynamic_symbol()
8824 srel = bfd_get_section_by_name (dynobj, RELOC_SECTION (htab, ".plt")); in elf32_arm_finish_dynamic_symbol()
8828 if (htab->symbian_p) in elf32_arm_finish_dynamic_symbol()
8830 put_arm_insn (htab, output_bfd, in elf32_arm_finish_dynamic_symbol()
8847 plt_index = ((h->plt.offset - htab->plt_header_size) in elf32_arm_finish_dynamic_symbol()
8848 / htab->plt_entry_size); in elf32_arm_finish_dynamic_symbol()
8881 ptr = htab->splt->contents + h->plt.offset; in elf32_arm_finish_dynamic_symbol()
8882 if (htab->vxworks_p && info->shared) in elf32_arm_finish_dynamic_symbol()
8887 for (i = 0; i != htab->plt_entry_size / 4; i++, ptr += 4) in elf32_arm_finish_dynamic_symbol()
8893 val |= plt_index * RELOC_SIZE (htab); in elf32_arm_finish_dynamic_symbol()
8897 put_arm_insn (htab, output_bfd, val, ptr); in elf32_arm_finish_dynamic_symbol()
8900 else if (htab->vxworks_p) in elf32_arm_finish_dynamic_symbol()
8905 for (i = 0; i != htab->plt_entry_size / 4; i++, ptr += 4) in elf32_arm_finish_dynamic_symbol()
8913 val |= plt_index * RELOC_SIZE (htab); in elf32_arm_finish_dynamic_symbol()
8917 put_arm_insn (htab, output_bfd, val, ptr); in elf32_arm_finish_dynamic_symbol()
8920 loc = (htab->srelplt2->contents in elf32_arm_finish_dynamic_symbol()
8921 + (plt_index * 2 + 1) * RELOC_SIZE (htab)); in elf32_arm_finish_dynamic_symbol()
8926 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_ARM_ABS32); in elf32_arm_finish_dynamic_symbol()
8928 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); in elf32_arm_finish_dynamic_symbol()
8929 loc += RELOC_SIZE (htab); in elf32_arm_finish_dynamic_symbol()
8934 rel.r_info = ELF32_R_INFO (htab->root.hplt->indx, R_ARM_ABS32); in elf32_arm_finish_dynamic_symbol()
8936 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); in elf32_arm_finish_dynamic_symbol()
8948 if (!htab->use_blx && eh->plt_thumb_refcount > 0) in elf32_arm_finish_dynamic_symbol()
8950 put_thumb_insn (htab, output_bfd, in elf32_arm_finish_dynamic_symbol()
8952 put_thumb_insn (htab, output_bfd, in elf32_arm_finish_dynamic_symbol()
8956 put_arm_insn (htab, output_bfd, in elf32_arm_finish_dynamic_symbol()
8960 put_arm_insn (htab, output_bfd, in elf32_arm_finish_dynamic_symbol()
8964 put_arm_insn (htab, output_bfd, in elf32_arm_finish_dynamic_symbol()
8985 loc = srel->contents + plt_index * RELOC_SIZE (htab); in elf32_arm_finish_dynamic_symbol()
8986 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); in elf32_arm_finish_dynamic_symbol()
9015 srel = bfd_get_section_by_name (dynobj, RELOC_SECTION (htab, ".got")); in elf32_arm_finish_dynamic_symbol()
9034 if (!htab->use_rel) in elf32_arm_finish_dynamic_symbol()
9047 loc = srel->contents + srel->reloc_count++ * RELOC_SIZE (htab); in elf32_arm_finish_dynamic_symbol()
9048 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); in elf32_arm_finish_dynamic_symbol()
9063 RELOC_SECTION (htab, ".bss")); in elf32_arm_finish_dynamic_symbol()
9071 loc = s->contents + s->reloc_count++ * RELOC_SIZE (htab); in elf32_arm_finish_dynamic_symbol()
9072 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); in elf32_arm_finish_dynamic_symbol()
9079 || (!htab->vxworks_p && h == htab->root.hgot)) in elf32_arm_finish_dynamic_symbol()
9104 struct elf32_arm_link_hash_table *htab; in elf32_arm_finish_dynamic_sections() local
9106 htab = elf32_arm_hash_table (info); in elf32_arm_finish_dynamic_sections()
9151 name = RELOC_SECTION (htab, ".plt"); in elf32_arm_finish_dynamic_sections()
9155 if (!htab->symbian_p) in elf32_arm_finish_dynamic_sections()
9166 if (htab->symbian_p) in elf32_arm_finish_dynamic_sections()
9172 RELOC_SECTION (htab, ".plt")); in elf32_arm_finish_dynamic_sections()
9180 if (!htab->symbian_p) in elf32_arm_finish_dynamic_sections()
9192 RELOC_SECTION (htab, ".plt")); in elf32_arm_finish_dynamic_sections()
9210 if (htab->symbian_p) in elf32_arm_finish_dynamic_sections()
9271 if (htab->vxworks_p) in elf32_arm_finish_dynamic_sections()
9279 put_arm_insn (htab, output_bfd, plt0_entry[0], in elf32_arm_finish_dynamic_sections()
9281 put_arm_insn (htab, output_bfd, plt0_entry[1], in elf32_arm_finish_dynamic_sections()
9283 put_arm_insn (htab, output_bfd, plt0_entry[2], in elf32_arm_finish_dynamic_sections()
9289 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_ARM_ABS32); in elf32_arm_finish_dynamic_sections()
9291 SWAP_RELOC_OUT (htab) (output_bfd, &rel, in elf32_arm_finish_dynamic_sections()
9292 htab->srelplt2->contents); in elf32_arm_finish_dynamic_sections()
9299 put_arm_insn (htab, output_bfd, plt0_entry[0], in elf32_arm_finish_dynamic_sections()
9301 put_arm_insn (htab, output_bfd, plt0_entry[1], in elf32_arm_finish_dynamic_sections()
9303 put_arm_insn (htab, output_bfd, plt0_entry[2], in elf32_arm_finish_dynamic_sections()
9305 put_arm_insn (htab, output_bfd, plt0_entry[3], in elf32_arm_finish_dynamic_sections()
9323 if (htab->vxworks_p && !info->shared && htab->splt->size > 0) in elf32_arm_finish_dynamic_sections()
9330 num_plts = ((htab->splt->size - htab->plt_header_size) in elf32_arm_finish_dynamic_sections()
9331 / htab->plt_entry_size); in elf32_arm_finish_dynamic_sections()
9332 p = htab->srelplt2->contents + RELOC_SIZE (htab); in elf32_arm_finish_dynamic_sections()
9338 SWAP_RELOC_IN (htab) (output_bfd, p, &rel); in elf32_arm_finish_dynamic_sections()
9339 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_ARM_ABS32); in elf32_arm_finish_dynamic_sections()
9340 SWAP_RELOC_OUT (htab) (output_bfd, &rel, p); in elf32_arm_finish_dynamic_sections()
9341 p += RELOC_SIZE (htab); in elf32_arm_finish_dynamic_sections()
9343 SWAP_RELOC_IN (htab) (output_bfd, p, &rel); in elf32_arm_finish_dynamic_sections()
9344 rel.r_info = ELF32_R_INFO (htab->root.hplt->indx, R_ARM_ABS32); in elf32_arm_finish_dynamic_sections()
9345 SWAP_RELOC_OUT (htab) (output_bfd, &rel, p); in elf32_arm_finish_dynamic_sections()
9346 p += RELOC_SIZE (htab); in elf32_arm_finish_dynamic_sections()
9625 struct elf32_arm_link_hash_table *htab; in elf32_arm_ouput_plt_map_sym() local
9628 htab = elf32_arm_hash_table (osi->info); in elf32_arm_ouput_plt_map_sym()
9648 struct elf32_arm_link_hash_table *htab; in elf32_arm_output_plt_map() local
9652 htab = elf32_arm_hash_table (osi->info); in elf32_arm_output_plt_map()
9668 if (htab->symbian_p) in elf32_arm_output_plt_map()
9675 else if (htab->vxworks_p) in elf32_arm_output_plt_map()
9690 thumb_stub = eh->plt_thumb_refcount > 0 && !htab->use_blx; in elf32_arm_output_plt_map()
9728 struct elf32_arm_link_hash_table *htab; in elf32_arm_output_arch_local_syms() local
9732 htab = elf32_arm_hash_table (info); in elf32_arm_output_arch_local_syms()
9733 check_use_blx(htab); in elf32_arm_output_arch_local_syms()
9740 if (htab->arm_glue_size > 0) in elf32_arm_output_arch_local_syms()
9742 osi.sec = bfd_get_section_by_name (htab->bfd_of_glue_owner, in elf32_arm_output_arch_local_syms()
9747 if (info->shared || htab->root.is_relocatable_executable in elf32_arm_output_arch_local_syms()
9748 || htab->pic_veneer) in elf32_arm_output_arch_local_syms()
9750 else if (htab->use_blx) in elf32_arm_output_arch_local_syms()
9755 for (offset = 0; offset < htab->arm_glue_size; offset += size) in elf32_arm_output_arch_local_syms()
9763 if (htab->thumb_glue_size > 0) in elf32_arm_output_arch_local_syms()
9765 osi.sec = bfd_get_section_by_name (htab->bfd_of_glue_owner, in elf32_arm_output_arch_local_syms()
9772 for (offset = 0; offset < htab->thumb_glue_size; offset += size) in elf32_arm_output_arch_local_syms()
9780 if (!htab->splt || htab->splt->size == 0) in elf32_arm_output_arch_local_syms()
9784 htab->splt->output_section); in elf32_arm_output_arch_local_syms()
9785 osi.sec = htab->splt; in elf32_arm_output_arch_local_syms()
9788 if (htab->vxworks_p) in elf32_arm_output_arch_local_syms()
9799 else if (!htab->symbian_p) in elf32_arm_output_arch_local_syms()
9809 elf_link_hash_traverse (&htab->root, elf32_arm_output_plt_map, (void *) &osi); in elf32_arm_output_arch_local_syms()
10297 struct elf32_arm_link_hash_table *htab in elf32_arm_vxworks_link_hash_table_create() local
10299 htab->use_rel = 0; in elf32_arm_vxworks_link_hash_table_create()
10300 htab->vxworks_p = 1; in elf32_arm_vxworks_link_hash_table_create()
10363 struct elf32_arm_link_hash_table *htab in elf32_arm_symbian_link_hash_table_create() local
10366 htab->plt_header_size = 0; in elf32_arm_symbian_link_hash_table_create()
10368 htab->plt_entry_size = 4 * NUM_ELEM (elf32_arm_symbian_plt_entry); in elf32_arm_symbian_link_hash_table_create()
10369 htab->symbian_p = 1; in elf32_arm_symbian_link_hash_table_create()
10371 htab->use_blx = 1; in elf32_arm_symbian_link_hash_table_create()
10372 htab->root.is_relocatable_executable = 1; in elf32_arm_symbian_link_hash_table_create()