Lines Matching full:htab
738 struct elf_s390_link_hash_table *htab;
743 htab = elf_s390_hash_table (info);
744 if (htab == NULL)
747 htab->elf.sgot = bfd_get_linker_section (dynobj, ".got");
748 htab->elf.sgotplt = bfd_get_linker_section (dynobj, ".got.plt");
749 htab->elf.srelgot = bfd_get_linker_section (dynobj, ".rela.got");
750 if (!htab->elf.sgot || !htab->elf.sgotplt || !htab->elf.srelgot)
763 struct elf_s390_link_hash_table *htab;
765 htab = elf_s390_hash_table (info);
766 if (htab == NULL)
769 if (!htab->elf.sgot && !create_got_section (dynobj, info))
775 htab->elf.splt = bfd_get_linker_section (dynobj, ".plt");
776 htab->elf.srelplt = bfd_get_linker_section (dynobj, ".rela.plt");
777 htab->sdynbss = bfd_get_linker_section (dynobj, ".dynbss");
779 htab->srelbss = bfd_get_linker_section (dynobj, ".rela.bss");
781 if (!htab->elf.splt || !htab->elf.srelplt || !htab->sdynbss
782 || (!info->shared && !htab->srelbss))
890 struct elf_s390_link_hash_table *htab;
904 htab = elf_s390_hash_table (info);
905 if (htab == NULL)
935 isym = bfd_sym_from_r_symndx (&htab->sym_cache,
944 if (htab->elf.dynobj == NULL)
945 htab->elf.dynobj = abfd;
947 if (!s390_elf_create_ifunc_sections (htab->elf.dynobj, info))
1013 if (htab->elf.sgot == NULL)
1015 if (htab->elf.dynobj == NULL)
1016 htab->elf.dynobj = abfd;
1017 if (!create_got_section (htab->elf.dynobj, info))
1024 if (htab->elf.dynobj == NULL)
1025 htab->elf.dynobj = abfd;
1026 if (!s390_elf_create_ifunc_sections (htab->elf.dynobj, info))
1104 htab->tls_ldm_got.refcount += 1;
1275 if (htab->elf.dynobj == NULL)
1276 htab->elf.dynobj = abfd;
1279 (sec, htab->elf.dynobj, 3, abfd, /*rela?*/ TRUE);
1299 isym = bfd_sym_from_r_symndx (&htab->sym_cache,
1317 bfd_alloc (htab->elf.dynobj, amt));
1392 struct elf_s390_link_hash_table *htab;
1401 htab = elf_s390_hash_table (info);
1402 if (htab == NULL)
1444 isym = bfd_sym_from_r_symndx (&htab->sym_cache,
1462 if (htab->tls_ldm_got.refcount > 0)
1463 htab->tls_ldm_got.refcount -= 1;
1589 struct elf_s390_link_hash_table *htab;
1695 htab = elf_s390_hash_table (info);
1696 if (htab == NULL)
1704 htab->srelbss->size += sizeof (Elf64_External_Rela);
1708 s = htab->sdynbss;
1721 struct elf_s390_link_hash_table *htab;
1729 htab = elf_s390_hash_table (info);
1730 if (htab == NULL)
1738 else if (htab->elf.dynamic_sections_created
1753 asection *s = htab->elf.splt;
1779 htab->elf.sgotplt->size += GOT_ENTRY_SIZE;
1782 htab->elf.srelplt->size += sizeof (Elf64_External_Rela);
1812 h->got.offset = htab->elf.sgot->size;
1813 htab->elf.sgot->size += GOT_ENTRY_SIZE;
1833 s = htab->elf.sgot;
1839 dyn = htab->elf.dynamic_sections_created;
1844 htab->elf.srelgot->size += sizeof (Elf64_External_Rela);
1846 htab->elf.srelgot->size += 2 * sizeof (Elf64_External_Rela);
1851 htab->elf.srelgot->size += sizeof (Elf64_External_Rela);
1909 || (htab->elf.dynamic_sections_created
1975 struct elf_s390_link_hash_table *htab;
1981 htab = elf_s390_hash_table (info);
1982 if (htab == NULL)
1985 dynobj = htab->elf.dynobj;
1989 if (htab->elf.dynamic_sections_created)
2050 s = htab->elf.sgot;
2051 srela = htab->elf.srelgot;
2072 local_plt[i].plt.offset = htab->elf.iplt->size;
2073 htab->elf.iplt->size += PLT_ENTRY_SIZE;
2074 htab->elf.igotplt->size += GOT_ENTRY_SIZE;
2075 htab->elf.irelplt->size += sizeof (Elf64_External_Rela);
2082 if (htab->tls_ldm_got.refcount > 0)
2086 htab->tls_ldm_got.offset = htab->elf.sgot->size;
2087 htab->elf.sgot->size += 2 * GOT_ENTRY_SIZE;
2088 htab->elf.srelgot->size += sizeof (Elf64_External_Rela);
2091 htab->tls_ldm_got.offset = -1;
2095 elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, info);
2105 if (s == htab->elf.splt
2106 || s == htab->elf.sgot
2107 || s == htab->elf.sgotplt
2108 || s == htab->sdynbss
2109 || s == htab->elf.iplt
2110 || s == htab->elf.igotplt
2111 || s == htab->irelifunc)
2118 if (s->size != 0 && s != htab->elf.srelplt)
2160 if (htab->elf.dynamic_sections_created)
2176 if (htab->elf.splt->size != 0)
2195 elf_link_hash_traverse (&htab->elf, readonly_dynrelocs,
2229 struct elf_link_hash_table *htab = elf_hash_table (info);
2232 if (htab->tls_sec == NULL)
2234 return htab->tls_size + htab->tls_sec->vma - address;
2269 struct elf_s390_link_hash_table *htab;
2278 htab = elf_s390_hash_table (info);
2279 if (htab == NULL)
2301 asection *base_got = htab->elf.sgot;
2332 relocation = (htab->elf.iplt->output_section->vma
2333 + htab->elf.iplt->output_offset
2341 relocation -= htab->elf.sgot->output_section->vma;
2358 htab->elf.sgot->contents +
2361 htab->elf.sgot->output_offset);
2364 relocation += htab->elf.sgot->output_section->vma;
2422 htab->elf.igotplt->output_offset);
2424 relocation += htab->elf.igotplt->output_section->vma;
2437 relocation += htab->elf.sgot->output_section->vma;
2460 dyn = htab->elf.dynamic_sections_created;
2469 base_got = htab->elf.igotplt;
2555 htab->elf.sgot->contents + off);
2563 s = htab->elf.srelgot;
2567 outrel.r_offset = (htab->elf.sgot->output_section->vma
2568 + htab->elf.sgot->output_offset
2607 relocation -= htab->elf.sgot->output_section->vma;
2613 htab->elf.sgot->output_section->vma;
2632 || (htab->elf.splt == NULL && !s390_is_ifunc_symbol_p (h)))
2640 relocation = (htab->elf.iplt->output_section->vma
2641 + htab->elf.iplt->output_offset
2644 relocation = (htab->elf.splt->output_section->vma
2645 + htab->elf.splt->output_offset
2660 || (htab->elf.splt == NULL && !s390_is_ifunc_symbol_p (h)))
2662 relocation -= htab->elf.sgot->output_section->vma;
2667 relocation = (htab->elf.iplt->output_section->vma
2668 + htab->elf.iplt->output_offset
2670 - htab->elf.sgot->output_section->vma);
2672 relocation = (htab->elf.splt->output_section->vma
2673 + htab->elf.splt->output_offset
2675 - htab->elf.sgot->output_section->vma);
2699 relocation = (htab->elf.iplt->output_section->vma
2700 + htab->elf.iplt->output_offset
2740 sreloc = htab->elf.irelifunc;
2846 osec = htab->elf.text_index_section;
2926 if (htab->elf.sgot == NULL)
2949 if (htab->elf.srelgot == NULL)
2952 outrel.r_offset = (htab->elf.sgot->output_section->vma
2953 + htab->elf.sgot->output_offset + off);
2965 loc = htab->elf.srelgot->contents;
2966 loc += htab->elf.srelgot->reloc_count++
2977 htab->elf.sgot->contents + off + GOT_ENTRY_SIZE);
2984 htab->elf.srelgot->reloc_count++;
3000 relocation = htab->elf.sgot->output_offset + off;
3002 relocation += htab->elf.sgot->output_section->vma;
3007 bfd_put_64 (output_bfd, htab->elf.sgot->output_offset + off,
3032 if (htab->elf.sgot == NULL)
3037 htab->elf.sgot->contents + off);
3038 relocation = htab->elf.sgot->output_offset + off;
3040 relocation += htab->elf.sgot->output_section->vma;
3051 if (htab->elf.sgot == NULL)
3054 off = htab->tls_ldm_got.offset;
3062 if (htab->elf.srelgot == NULL)
3065 outrel.r_offset = (htab->elf.sgot->output_section->vma
3066 + htab->elf.sgot->output_offset + off);
3069 htab->elf.sgot->contents + off + GOT_ENTRY_SIZE);
3072 loc = htab->elf.srelgot->contents;
3073 loc += htab->elf.srelgot->reloc_count++
3076 htab->tls_ldm_got.offset |= 1;
3078 relocation = htab->elf.sgot->output_offset + off;
3313 struct elf_s390_link_hash_table *htab,
3323 if (htab->elf.iplt == NULL
3324 || htab->elf.igotplt == NULL
3325 || htab->elf.irelplt == NULL)
3330 plt = htab->elf.iplt;
3333 gotplt = htab->elf.igotplt;
3334 relplt = htab->elf.irelplt;
3401 struct elf_s390_link_hash_table *htab;
3404 htab = elf_s390_hash_table (info);
3405 if (htab == NULL)
3421 elf_s390_finish_ifunc_symbol (output_bfd, info, h, htab, h->plt.offset,
3432 || htab->elf.splt == NULL
3433 || htab->elf.sgotplt == NULL
3434 || htab->elf.srelplt == NULL)
3446 memcpy (htab->elf.splt->contents + h->plt.offset, elf_s390x_plt_entry,
3451 (htab->elf.sgotplt->output_section->vma +
3452 htab->elf.sgotplt->output_offset + got_offset
3453 - (htab->elf.splt->output_section->vma +
3454 htab->elf.splt->output_offset +
3456 htab->elf.splt->contents + h->plt.offset + 2);
3460 htab->elf.splt->contents + h->plt.offset + 24);
3463 htab->elf.splt->contents + h->plt.offset + 28);
3468 (htab->elf.splt->output_section->vma
3469 + htab->elf.splt->output_offset
3472 htab->elf.sgotplt->contents + got_offset);
3475 rela.r_offset = (htab->elf.sgotplt->output_section->vma
3476 + htab->elf.sgotplt->output_offset
3480 loc = htab->elf.srelplt->contents + plt_index *
3506 if (htab->elf.sgot == NULL || htab->elf.srelgot == NULL)
3509 rela.r_offset = (htab->elf.sgot->output_section->vma
3510 + htab->elf.sgot->output_offset
3528 bfd_put_64 (output_bfd, (htab->elf.iplt->output_section->vma
3529 + htab->elf.iplt->output_offset
3531 htab->elf.sgot->contents + h->got.offset);
3556 bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgot->contents + h->got.offset);
3561 loc = htab->elf.srelgot->contents;
3562 loc += htab->elf.srelgot->reloc_count++ * sizeof (Elf64_External_Rela);
3576 || htab->srelbss == NULL)
3584 loc = htab->srelbss->contents;
3585 loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela);
3590 if (h == htab->elf.hdynamic
3591 || h == htab->elf.hgot
3592 || h == htab->elf.hplt)
3625 struct elf_s390_link_hash_table *htab;
3631 htab = elf_s390_hash_table (info);
3632 if (htab == NULL)
3635 dynobj = htab->elf.dynobj;
3638 if (htab->elf.dynamic_sections_created)
3642 if (sdyn == NULL || htab->elf.sgot == NULL)
3660 dyn.d_un.d_ptr = htab->elf.sgot->output_section->vma;
3664 dyn.d_un.d_ptr = htab->elf.srelplt->output_section->vma;
3668 s = htab->elf.srelplt->output_section;
3680 s = htab->elf.srelplt->output_section;
3689 if (htab->elf.splt && htab->elf.splt->size > 0)
3692 memcpy (htab->elf.splt->contents, elf_s390x_first_plt_entry,
3696 (htab->elf.sgotplt->output_section->vma +
3697 htab->elf.sgotplt->output_offset
3698 - htab->elf.splt->output_section->vma - 6)/2,
3699 htab->elf.splt->contents + 8);
3701 if (elf_section_data (htab->elf.splt->output_section) != NULL)
3702 elf_section_data (htab->elf.splt->output_section)->this_hdr.sh_entsize
3706 if (htab->elf.sgotplt)
3709 if (htab->elf.sgotplt->size > 0)
3714 htab->elf.sgotplt->contents);
3716 bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + 8);
3718 bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + 12);
3721 elf_section_data (htab->elf.sgot->output_section)
3741 isym = bfd_sym_from_r_symndx (&htab->sym_cache, ibfd, i);
3746 elf_s390_finish_ifunc_symbol (output_bfd, info, NULL, htab,