Lines Matching full:htab
33 /* Return the relocation section associated with NAME. HTAB is the
35 #define RELOC_SECTION(HTAB, NAME) \
36 ((HTAB)->use_rel ? ".rel" NAME : ".rela" NAME)
38 /* Return size of a relocation entry. HTAB is the bfd's
40 #define RELOC_SIZE(HTAB) \
41 ((HTAB)->use_rel \
45 /* Return function to swap relocations in. HTAB is the bfd's
47 #define SWAP_RELOC_IN(HTAB) \
48 ((HTAB)->use_rel \
52 /* Return function to swap relocations out. HTAB is the bfd's
54 #define SWAP_RELOC_OUT(HTAB) \
55 ((HTAB)->use_rel \
2919 #define elf32_arm_compute_jump_table_size(htab) \
2920 ((htab)->next_tls_desc_index * 4)
3207 struct elf32_arm_link_hash_table *htab;
3209 htab = elf32_arm_hash_table (info);
3211 || (!htab->use_blx && arm_plt->maybe_thumb_refcount != 0));
3297 struct elf32_arm_link_hash_table *htab;
3299 htab = elf32_arm_hash_table (info);
3300 if (htab == NULL)
3304 if (htab->symbian_p)
3318 struct elf32_arm_link_hash_table *htab;
3324 htab = elf32_arm_hash_table (info);
3325 dynobj = htab->root.dynobj;
3329 if (htab->root.iplt == NULL)
3336 htab->root.iplt = s;
3339 if (htab->root.irelplt == NULL)
3342 RELOC_SECTION (htab, ".iplt"),
3347 htab->root.irelplt = s;
3350 if (htab->root.igotplt == NULL)
3356 htab->root.igotplt = s;
3399 struct elf32_arm_link_hash_table *htab;
3401 htab = elf32_arm_hash_table (info);
3402 if (htab == NULL)
3405 if (!htab->root.sgot && !create_got_section (dynobj, info))
3411 htab->sdynbss = bfd_get_linker_section (dynobj, ".dynbss");
3413 htab->srelbss = bfd_get_linker_section (dynobj,
3414 RELOC_SECTION (htab, ".bss"));
3416 if (htab->vxworks_p)
3418 if (!elf_vxworks_create_dynamic_sections (dynobj, info, &htab->srelplt2))
3423 htab->plt_header_size = 0;
3424 htab->plt_entry_size
3429 htab->plt_header_size
3431 htab->plt_entry_size
3441 bfd * saved_obfd = htab->obfd;
3443 htab->obfd = dynobj;
3444 if (using_thumb_only (htab))
3446 htab->plt_header_size = 4 * ARRAY_SIZE (elf32_thumb2_plt0_entry);
3447 htab->plt_entry_size = 4 * ARRAY_SIZE (elf32_thumb2_plt_entry);
3449 htab->obfd = saved_obfd;
3452 if (!htab->root.splt
3453 || !htab->root.srelplt
3454 || !htab->sdynbss
3455 || (!info->shared && !htab->srelbss))
3941 struct elf32_arm_link_hash_table *htab,
3956 id_sec = htab->stub_group[input_section->id].link_sec;
3973 stub_entry = arm_stub_hash_lookup (&htab->stub_hash_table,
3990 struct elf32_arm_link_hash_table *htab)
3995 link_sec = htab->stub_group[section->id].link_sec;
3997 stub_sec = htab->stub_group[section->id].stub_sec;
4001 stub_sec = htab->stub_group[link_sec->id].stub_sec;
4010 s_name = (char *) bfd_alloc (htab->stub_bfd, len);
4016 stub_sec = (*htab->add_stub_section) (s_name, link_sec,
4017 htab->nacl_p ? 4 : 3);
4020 htab->stub_group[link_sec->id].stub_sec = stub_sec;
4022 htab->stub_group[section->id].stub_sec = stub_sec;
4037 struct elf32_arm_link_hash_table *htab)
4043 stub_sec = elf32_arm_create_or_find_stub_sec (&link_sec, section, htab);
4048 stub_entry = arm_stub_hash_lookup (&htab->stub_hash_table, stub_name,
4069 put_arm_insn (struct elf32_arm_link_hash_table * htab,
4072 if (htab->byteswap_code != bfd_little_endian (output_bfd))
4082 put_thumb_insn (struct elf32_arm_link_hash_table * htab,
4085 if (htab->byteswap_code != bfd_little_endian (output_bfd))
4438 struct elf32_arm_link_hash_table *htab = elf32_arm_hash_table (info);
4440 if (htab == NULL)
4442 if (! is_elf_hash_table (htab))
4459 htab->bfd_count = bfd_count;
4462 htab->stub_group = (struct map_stub *) bfd_zmalloc (amt);
4463 if (htab->stub_group == NULL)
4465 htab->top_id = top_id;
4478 htab->top_index = top_index;
4481 htab->input_list = input_list;
4512 struct elf32_arm_link_hash_table *htab = elf32_arm_hash_table (info);
4514 if (htab == NULL)
4517 if (isec->output_section->index <= htab->top_index)
4519 asection **list = htab->input_list + isec->output_section->index;
4524 #define PREV_SEC(sec) (htab->stub_group[(sec)->id].link_sec)
4541 group_sections (struct elf32_arm_link_hash_table *htab,
4545 asection **list = htab->input_list;
4602 htab->stub_group[head->id].link_sec = curr;
4621 htab->stub_group[head->id].link_sec = curr;
4627 while (list++ != htab->input_list + htab->top_index);
4629 free (htab->input_list);
4671 struct elf32_arm_link_hash_table *htab = elf32_arm_hash_table (info);
4676 if (htab == NULL)
4789 if (htab->root.splt != NULL && found->hash != NULL
4853 if (htab->use_blx && force_target_arm
4981 struct elf32_arm_link_hash_table *htab = elf32_arm_hash_table (info);
4987 if (htab == NULL)
4990 if (htab->fix_cortex_a8)
5004 htab->stub_bfd = stub_bfd;
5005 htab->add_stub_section = add_stub_section;
5006 htab->layout_sections_again = layout_sections_again;
5012 if (htab->fix_cortex_a8)
5034 group_sections (htab, stub_group_size, stubs_always_after_branch);
5043 if (htab->fix_cortex_a8)
5044 (*htab->layout_sections_again) ();
5169 BFD_ASSERT (htab->tls_trampoline > 0);
5170 sym_sec = htab->root.splt;
5171 sym_value = htab->tls_trampoline;
5306 id_sec = htab->stub_group[section->id].link_sec;
5319 (&htab->stub_hash_table, stub_name,
5330 htab);
5346 bfd_alloc (htab->stub_bfd,
5378 if (htab->fix_cortex_a8
5422 if (htab->fix_cortex_a8)
5447 for (stub_sec = htab->stub_bfd->sections;
5458 bfd_hash_traverse (&htab->stub_hash_table, arm_size_one_stub, htab);
5461 if (htab->fix_cortex_a8)
5465 a8_fixes[i].section, htab);
5477 (*htab->layout_sections_again) ();
5481 if (htab->fix_cortex_a8)
5489 asection *link_sec = htab->stub_group[section_id].link_sec;
5490 asection *stub_sec = htab->stub_group[section_id].stub_sec;
5494 stub_entry = arm_stub_hash_lookup (&htab->stub_hash_table, stub_name,
5525 htab->a8_erratum_fixes = a8_fixes;
5526 htab->num_a8_erratum_fixes = num_a8_fixes;
5530 htab->a8_erratum_fixes = NULL;
5531 htab->num_a8_erratum_fixes = 0;
5550 struct elf32_arm_link_hash_table *htab;
5552 htab = elf32_arm_hash_table (info);
5553 if (htab == NULL)
5556 for (stub_sec = htab->stub_bfd->sections;
5568 stub_sec->contents = (unsigned char *) bfd_zalloc (htab->stub_bfd, size);
5575 table = &htab->stub_hash_table;
5577 if (htab->fix_cortex_a8)
5580 htab->fix_cortex_a8 = -1;
7443 struct elf32_arm_link_hash_table *htab;
7445 htab = elf32_arm_hash_table (info);
7446 BFD_ASSERT (htab->root.dynamic_sections_created);
7449 sreloc->size += RELOC_SIZE (htab) * count;
7460 struct elf32_arm_link_hash_table *htab;
7462 htab = elf32_arm_hash_table (info);
7463 if (!htab->root.dynamic_sections_created)
7464 htab->root.irelplt->size += RELOC_SIZE (htab) * count;
7468 sreloc->size += RELOC_SIZE (htab) * count;
7479 struct elf32_arm_link_hash_table *htab;
7481 htab = elf32_arm_hash_table (info);
7482 if (!htab->root.dynamic_sections_created
7484 sreloc = htab->root.irelplt;
7488 loc += sreloc->reloc_count++ * RELOC_SIZE (htab);
7489 if (sreloc->reloc_count * RELOC_SIZE (htab) > sreloc->size)
7491 SWAP_RELOC_OUT (htab) (output_bfd, rel, loc);
7504 struct elf32_arm_link_hash_table *htab;
7508 htab = elf32_arm_hash_table (info);
7512 splt = htab->root.iplt;
7513 sgotplt = htab->root.igotplt;
7516 if (htab->nacl_p && splt->size == 0)
7517 splt->size += htab->plt_header_size;
7520 elf32_arm_allocate_irelocs (info, htab->root.irelplt, 1);
7524 splt = htab->root.splt;
7525 sgotplt = htab->root.sgotplt;
7528 elf32_arm_allocate_dynrelocs (info, htab->root.srelplt, 1);
7533 splt->size += htab->plt_header_size;
7535 htab->next_tls_desc_index++;
7542 splt->size += htab->plt_entry_size;
7544 if (!htab->symbian_p)
7551 arm_plt->got_offset = sgotplt->size - 8 * htab->num_tls_desc;
7585 struct elf32_arm_link_hash_table *htab;
7595 htab = elf32_arm_hash_table (info);
7600 splt = htab->root.iplt;
7601 sgot = htab->root.igotplt;
7602 srel = htab->root.irelplt;
7611 splt = htab->root.splt;
7612 sgot = htab->root.sgotplt;
7613 srel = htab->root.srelplt;
7616 plt_header_size = htab->plt_header_size;
7621 if (htab->symbian_p)
7624 put_arm_insn (htab, output_bfd,
7642 / htab->plt_entry_size);
7674 if (htab->vxworks_p && info->shared)
7679 for (i = 0; i != htab->plt_entry_size / 4; i++, ptr += 4)
7685 val |= plt_index * RELOC_SIZE (htab);
7689 put_arm_insn (htab, output_bfd, val, ptr);
7692 else if (htab->vxworks_p)
7697 for (i = 0; i != htab->plt_entry_size / 4; i++, ptr += 4)
7705 val |= plt_index * RELOC_SIZE (htab);
7709 put_arm_insn (htab, output_bfd, val, ptr);
7712 loc = (htab->srelplt2->contents
7713 + (plt_index * 2 + 1) * RELOC_SIZE (htab));
7718 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_ARM_ABS32);
7720 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc);
7721 loc += RELOC_SIZE (htab);
7726 rel.r_info = ELF32_R_INFO (htab->root.hplt->indx, R_ARM_ABS32);
7728 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc);
7730 else if (htab->nacl_p)
7737 - (plt_address + htab->plt_entry_size + 4));
7748 - (plt_address + htab->plt_entry_size));
7753 put_arm_insn (htab, output_bfd,
7757 put_arm_insn (htab, output_bfd,
7761 put_arm_insn (htab, output_bfd,
7764 put_arm_insn (htab, output_bfd,
7769 else if (using_thumb_only (htab))
7772 if (!using_thumb2 (htab))
7788 put_arm_insn (htab, output_bfd,
7795 put_arm_insn (htab, output_bfd,
7802 put_arm_insn (htab, output_bfd,
7805 put_arm_insn (htab, output_bfd,
7819 put_thumb_insn (htab, output_bfd,
7821 put_thumb_insn (htab, output_bfd,
7829 put_arm_insn (htab, output_bfd,
7833 put_arm_insn (htab, output_bfd,
7837 put_arm_insn (htab, output_bfd,
7847 put_arm_insn (htab, output_bfd,
7851 put_arm_insn (htab, output_bfd,
7855 put_arm_insn (htab, output_bfd,
7859 put_arm_insn (htab, output_bfd,
7893 loc = srel->contents + plt_index * RELOC_SIZE (htab);
7894 SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc);
7942 struct elf_link_hash_table *htab = elf_hash_table (info);
7946 if (htab->tls_sec == NULL)
7948 base = align_power ((bfd_vma) TCB_SIZE, htab->tls_sec->alignment_power);
7949 return address - htab->tls_sec->vma + base;
8481 struct elf_link_hash_table *htab = elf_hash_table (info);
8484 && htab->data_index_section != NULL)
8485 osec = htab->data_index_section;
8487 osec = htab->text_index_section;
11130 struct elf32_arm_link_hash_table *htab = elf32_arm_hash_table (info);
11132 for (i=0; i<htab->top_id; i++)
11134 sec = htab->stub_group[i].stub_sec;
11136 if (sec && i == htab->stub_group[i].link_sec->id)
12635 struct elf32_arm_link_hash_table *htab;
12646 htab = elf32_arm_hash_table (info);
12647 if (htab == NULL)
12654 if (htab->root.is_relocatable_executable
12655 && ! htab->root.dynamic_sections_created)
12661 if (htab->root.dynobj == NULL)
12662 htab->root.dynobj = abfd;
12666 dynobj = htab->root.dynobj;
12683 r_type = arm_real_reloc_type (htab, r_type);
12703 isym = bfd_sym_from_r_symndx (&htab->sym_cache,
12807 htab->tls_ldm_got.refcount++;
12812 if (htab->root.sgot == NULL
12813 && !create_got_section (htab->root.dynobj, info))
12832 if (!htab->vxworks_p)
12869 if ((info->shared || htab->root.is_relocatable_executable)
12957 /* It's too early to use htab->use_blx here, so we have to
12977 (sec, dynobj, 2, abfd, ! htab->use_rel);
12983 if (htab->symbian_p)
13009 p = (struct elf_dyn_relocs *) bfd_alloc (htab->root.dynobj, amt);
13350 struct elf32_arm_link_hash_table *htab;
13360 htab = elf32_arm_hash_table (info);
13361 if (htab == NULL)
13364 if ((htab->root.dynamic_sections_created || h->type == STT_GNU_IFUNC)
13408 h->root.u.def.section = htab->root.splt;
13420 if (htab->vxworks_p && !info->shared)
13424 if (h->plt.offset == htab->plt_header_size)
13425 elf32_arm_allocate_dynrelocs (info, htab->srelplt2, 1);
13430 elf32_arm_allocate_dynrelocs (info, htab->srelplt2, 2);
13464 if (!htab->symbian_p)
13466 s = htab->root.sgot;
13481 = (htab->root.sgotplt->size
13482 - elf32_arm_compute_jump_table_size (htab));
13483 htab->root.sgotplt->size += 8;
13487 htab->num_tls_desc++;
13504 dyn = htab->root.dynamic_sections_created;
13518 elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
13521 elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
13525 elf32_arm_allocate_dynrelocs (info, htab->root.srelplt, 1);
13527 htab->tls_trampoline = -1;
13533 elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
13537 if (htab->root.dynamic_sections_created)
13539 elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
13546 elf32_arm_allocate_irelocs (info, htab->root.srelgot, 1);
13550 elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
13557 if (!htab->use_blx && h->dynindx != -1
13598 if (info->shared || htab->root.is_relocatable_executable)
13621 if (htab->vxworks_p)
13652 else if (htab->root.is_relocatable_executable && h->dynindx == -1
13672 || (htab->root.dynamic_sections_created
13761 struct elf32_arm_link_hash_table *htab;
13763 htab = elf32_arm_hash_table (info);
13764 if (htab
13769 check_use_blx (htab);
13795 bfd_boolean is_vxworks = htab->vxworks_p;
13844 s = htab->root.sgot;
13845 srel = htab->root.srelgot;
13896 *local_tlsdesc_gotent = htab->root.sgotplt->size
13897 - elf32_arm_compute_jump_table_size (htab);
13898 htab->root.sgotplt->size += 8;
13902 htab->num_tls_desc++;
13915 isym = bfd_sym_from_r_symndx (&htab->sym_cache, ibfd, symndx);
13935 htab->root.srelplt, 1);
13936 htab->tls_trampoline = -1;
13945 if (htab->tls_ldm_got.refcount > 0)
13949 htab->tls_ldm_got.offset = htab->root.sgot->size;
13950 htab->root.sgot->size += 8;
13952 elf32_arm_allocate_dynrelocs (info, htab->root.srelgot, 1);
13955 htab->tls_ldm_got.offset = -1;
13959 elf_link_hash_traverse (& htab->root, allocate_dynrelocs_for_symbol, info);
13985 if (htab->root.srelplt)
13986 htab->sgotplt_jump_table_size = elf32_arm_compute_jump_table_size(htab);
13988 if (htab->tls_trampoline)
13990 if (htab->root.splt->size == 0)
13991 htab->root.splt->size += htab->plt_header_size;
13993 htab->tls_trampoline = htab->root.splt->size;
13994 htab->root.splt->size += htab->plt_entry_size;
14000 htab->dt_tlsdesc_got = htab->root.sgot->size;
14001 htab->root.sgot->size += 4;
14003 htab->dt_tlsdesc_plt = htab->root.splt->size;
14004 htab->root.splt->size += 4 * ARRAY_SIZE (dl_tlsdesc_lazy_trampoline);
14024 if (s == htab->root.splt)
14035 if (s != htab->root.srelplt && s != htab->srelplt2)
14043 else if (s != htab->root.sgot
14044 && s != htab->root.sgotplt
14045 && s != htab->root.iplt
14046 && s != htab->root.igotplt
14047 && s != htab->sdynbss)
14098 htab->use_rel ? DT_REL : DT_RELA)
14102 if (htab->dt_tlsdesc_plt &&
14110 if (htab->use_rel)
14114 || !add_dynamic_entry (DT_RELENT, RELOC_SIZE (htab)))
14121 || !add_dynamic_entry (DT_RELAENT, RELOC_SIZE (htab)))
14129 elf_link_hash_traverse (& htab->root, elf32_arm_readonly_dynrelocs,
14137 if (htab->vxworks_p
14198 struct elf32_arm_link_hash_table *htab;
14201 htab = elf32_arm_hash_table (info);
14202 if (htab == NULL)
14236 (output_bfd, htab->root.iplt->output_section));
14238 + htab->root.iplt->output_section->vma
14239 + htab->root.iplt->output_offset);
14253 s = htab->srelbss;
14267 if (h == htab->root.hdynamic
14268 || (!htab->vxworks_p && h == htab->root.hgot))
14275 arm_put_trampoline (struct elf32_arm_link_hash_table *htab, bfd *output_bfd,
14286 if (htab->fix_v4bx == 1 && (insn & 0x0ffffff0) == 0x012fff10)
14288 put_arm_insn (htab, output_bfd, insn, (char *)contents + ix*4);
14304 arm_nacl_put_plt0 (struct elf32_arm_link_hash_table *htab, bfd *output_bfd,
14309 put_arm_insn (htab, output_bfd,
14313 put_arm_insn (htab, output_bfd,
14319 put_arm_insn (htab, output_bfd,
14332 struct elf32_arm_link_hash_table *htab;
14334 htab = elf32_arm_hash_table (info);
14335 if (htab == NULL)
14340 sgot = htab->root.sgotplt;
14352 splt = htab->root.splt;
14354 BFD_ASSERT (htab->symbian_p || sgot != NULL);
14372 if (htab->vxworks_p
14400 name = RELOC_SECTION (htab, ".plt");
14411 if (!htab->symbian_p)
14422 if (htab->symbian_p)
14427 s = htab->root.srelplt;
14435 if (!htab->symbian_p)
14446 s = htab->root.srelplt;
14464 if (htab->symbian_p)
14489 s = htab->root.splt;
14491 + htab->dt_tlsdesc_plt);
14496 s = htab->root.sgot;
14498 + htab->dt_tlsdesc_got);
14529 if (splt->size > 0 && htab->plt_header_size)
14538 if (htab->vxworks_p)
14546 put_arm_insn (htab, output_bfd, plt0_entry[0],
14548 put_arm_insn (htab, output_bfd, plt0_entry[1],
14550 put_arm_insn (htab, output_bfd, plt0_entry[2],
14556 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_ARM_ABS32);
14558 SWAP_RELOC_OUT (htab) (output_bfd, &rel,
14559 htab->srelplt2->contents);
14561 else if (htab->nacl_p)
14562 arm_nacl_put_plt0 (htab, output_bfd, splt,
14564 else if (using_thumb_only (htab))
14569 put_arm_insn (htab, output_bfd, plt0_entry[0],
14571 put_arm_insn (htab, output_bfd, plt0_entry[1],
14573 put_arm_insn (htab, output_bfd, plt0_entry[2],
14583 put_arm_insn (htab, output_bfd, plt0_entry[0],
14585 put_arm_insn (htab, output_bfd, plt0_entry[1],
14587 put_arm_insn (htab, output_bfd, plt0_entry[2],
14589 put_arm_insn (htab, output_bfd, plt0_entry[3],
14607 if (htab->dt_tlsdesc_plt)
14611 bfd_vma gotplt_address = (htab->root.sgot->output_section->vma
14612 + htab->root.sgot->output_offset);
14616 arm_put_trampoline (htab, output_bfd,
14617 splt->contents + htab->dt_tlsdesc_plt,
14621 gotplt_address + htab->dt_tlsdesc_got
14622 - (plt_address + htab->dt_tlsdesc_plt)
14624 splt->contents + htab->dt_tlsdesc_plt + 24);
14626 got_address - (plt_address + htab->dt_tlsdesc_plt)
14628 splt->contents + htab->dt_tlsdesc_plt + 24 + 4);
14631 if (htab->tls_trampoline)
14633 arm_put_trampoline (htab, output_bfd,
14634 splt->contents + htab->tls_trampoline,
14638 splt->contents + htab->tls_trampoline + 12);
14642 if (htab->vxworks_p && !info->shared && htab->root.splt->size > 0)
14649 num_plts = ((htab->root.splt->size - htab->plt_header_size)
14650 / htab->plt_entry_size);
14651 p = htab->srelplt2->contents + RELOC_SIZE (htab);
14657 SWAP_RELOC_IN (htab) (output_bfd, p, &rel);
14658 rel.r_info = ELF32_R_INFO (htab->root.hgot->indx, R_ARM_ABS32);
14659 SWAP_RELOC_OUT (htab) (output_bfd, &rel, p);
14660 p += RELOC_SIZE (htab);
14662 SWAP_RELOC_IN (htab) (output_bfd, p, &rel);
14663 rel.r_info = ELF32_R_INFO (htab->root.hplt->indx, R_ARM_ABS32);
14664 SWAP_RELOC_OUT (htab) (output_bfd, &rel, p);
14665 p += RELOC_SIZE (htab);
14670 if (htab->nacl_p && htab->root.iplt != NULL && htab->root.iplt->size > 0)
14672 arm_nacl_put_plt0 (htab, output_bfd, htab->root.iplt, 0);
14869 struct elf32_arm_link_hash_table *htab;
14875 htab = elf32_arm_hash_table (osi->info);
14876 if (htab == NULL)
14881 osi->sec = htab->root.iplt;
14886 osi->sec = htab->root.splt;
14887 plt_header_size = htab->plt_header_size;
14893 if (htab->symbian_p)
14900 else if (htab->vxworks_p)
14911 else if (htab->nacl_p)
14916 else if (using_thumb_only (htab))
15108 struct elf32_arm_link_hash_table *htab;
15113 htab = elf32_arm_hash_table (info);
15114 if (htab == NULL)
15117 check_use_blx (htab);
15154 if (htab->arm_glue_size > 0)
15156 osi.sec = bfd_get_linker_section (htab->bfd_of_glue_owner,
15161 if (info->shared || htab->root.is_relocatable_executable
15162 || htab->pic_veneer)
15164 else if (htab->use_blx)
15169 for (offset = 0; offset < htab->arm_glue_size; offset += size)
15177 if (htab->thumb_glue_size > 0)
15179 osi.sec = bfd_get_linker_section (htab->bfd_of_glue_owner,
15186 for (offset = 0; offset < htab->thumb_glue_size; offset += size)
15194 if (htab->bx_glue_size > 0)
15196 osi.sec = bfd_get_linker_section (htab->bfd_of_glue_owner,
15206 if (htab->stub_bfd && htab->stub_bfd->sections)
15210 for (stub_sec = htab->stub_bfd->sections;
15223 bfd_hash_traverse (&htab->stub_hash_table, arm_map_one_stub, &osi);
15228 if (htab->root.splt && htab->root.splt->size > 0)
15230 osi.sec = htab->root.splt;
15236 if (htab->vxworks_p)
15247 else if (htab->nacl_p)
15252 else if (using_thumb_only (htab))
15261 else if (!htab->symbian_p)
15271 if (htab->nacl_p && htab->root.iplt && htab->root.iplt->size > 0)
15274 osi.sec = htab->root.iplt;
15280 if ((htab->root.splt && htab->root.splt->size > 0)
15281 || (htab->root.iplt && htab->root.iplt->size > 0))
15283 elf_link_hash_traverse (&htab->root, elf32_arm_output_plt_map, &osi);
15304 if (htab->dt_tlsdesc_plt != 0)
15307 if (!elf32_arm_output_map_sym (&osi, ARM_MAP_ARM, htab->dt_tlsdesc_plt))
15311 htab->dt_tlsdesc_plt + 24))
15314 if (htab->tls_trampoline != 0)
15317 if (!elf32_arm_output_map_sym (&osi, ARM_MAP_ARM, htab->tls_trampoline))
15321 htab->tls_trampoline + 12))
16287 struct elf32_arm_link_hash_table *htab
16290 htab->nacl_p = 1;
16292 htab->plt_header_size = 4 * ARRAY_SIZE (elf32_arm_nacl_plt0_entry);
16293 htab->plt_entry_size = 4 * ARRAY_SIZE (elf32_arm_nacl_plt_entry);
16383 struct elf32_arm_link_hash_table *htab
16385 htab->use_rel = 0;
16386 htab->vxworks_p = 1;
16669 struct elf32_arm_link_hash_table *htab
16672 htab->plt_header_size = 0;
16674 htab->plt_entry_size = 4 * ARRAY_SIZE (elf32_arm_symbian_plt_entry);
16675 htab->symbian_p = 1;
16677 htab->use_blx = 1;
16678 htab->root.is_relocatable_executable = 1;