Lines Matching refs:gsym
127 add_entry(Symbol_table*, Layout*, Symbol* gsym);
137 add_relocation(Symbol_table*, Layout*, Symbol* gsym,
546 do_plt_address_for_global(const Symbol* gsym) const
547 { return this->plt_section()->address_for_global(gsym); }
621 reserve_global_got_entry(unsigned int got_index, Symbol* gsym,
627 Symbol* gsym);
639 const Symbol* gsym,
721 Symbol* gsym);
741 Symbol* gsym);
1245 Symbol* gsym)
1247 gold_assert(!gsym->has_plt_offset());
1257 if (gsym->type() == elfcpp::STT_GNU_IFUNC
1258 && gsym->can_use_relative_reloc(false))
1308 gsym->set_plt_offset(plt_offset);
1311 this->add_relocation(symtab, layout, gsym, got_offset);
1353 Symbol* gsym,
1356 if (gsym->type() == elfcpp::STT_GNU_IFUNC
1357 && gsym->can_use_relative_reloc(false))
1360 rela->add_symbolless_global_addend(gsym, elfcpp::R_X86_64_IRELATIVE,
1365 gsym->set_needs_dynsym_entry();
1366 this->rel_->add_global(gsym, elfcpp::R_X86_64_JUMP_SLOT, this->got_plt_,
1436 Output_data_plt_x86_64<size>::address_for_global(const Symbol* gsym)
1439 if (gsym->type() == elfcpp::STT_GNU_IFUNC
1440 && gsym->can_use_relative_reloc(false))
1442 return this->address() + offset + gsym->plt_offset();
1753 Symbol* gsym)
1755 if (gsym->has_plt_offset())
1761 this->plt_->add_entry(symtab, layout, gsym);
1937 Symbol* gsym,
1943 this->got_->reserve_global(got_index, gsym, got_type);
1947 if (!gsym->final_value_is_known())
1949 if (gsym->is_from_dynobj()
1950 || gsym->is_undefined()
1951 || gsym->is_preemptible()
1952 || gsym->type() == elfcpp::STT_GNU_IFUNC)
1953 rela_dyn->add_global(gsym, elfcpp::R_X86_64_GLOB_DAT,
1956 rela_dyn->add_global_relative(gsym, elfcpp::R_X86_64_RELATIVE,
1961 rela_dyn->add_global_relative(gsym, elfcpp::R_X86_64_TPOFF64,
1966 rela_dyn->add_global_relative(gsym, elfcpp::R_X86_64_DTPMOD64,
1968 rela_dyn->add_global_relative(gsym, elfcpp::R_X86_64_DTPOFF64,
1973 rela_dyn->add_global_relative(gsym, elfcpp::R_X86_64_TLSDESC,
1988 Symbol* gsym)
1991 gold_assert(!gsym->has_plt_offset());
1995 gsym->set_plt_offset((plt_index + 1) * this->plt_entry_size());
1998 this->plt_->add_relocation(symtab, layout, gsym, got_offset);
2229 // error even if the section is not read-only. If GSYM is not NULL,
2236 Symbol* gsym)
2258 if (gsym == NULL
2259 || (!gsym->is_from_dynobj()
2260 && !gsym->is_undefined()
2261 && !gsym->is_preemptible()))
2271 if (gsym == NULL)
2295 r_name, gsym->name());
2662 Symbol* gsym)
2665 object->name().c_str(), r_type, gsym->demangled_name().c_str());
2731 Symbol* gsym)
2736 && (gsym->visibility() == elfcpp::STV_INTERNAL
2737 || gsym->visibility() == elfcpp::STV_PROTECTED
2738 || gsym->visibility() == elfcpp::STV_HIDDEN))
2754 Symbol* gsym)
2757 if (gsym->type() == elfcpp::STT_GNU_IFUNC
2759 target->make_plt_entry(symtab, layout, gsym);
2775 if (gsym->needs_plt_entry())
2777 target->make_plt_entry(symtab, layout, gsym);
2782 if (gsym->is_from_dynobj() && !parameters->options().shared())
2783 gsym->set_needs_dynsym_value();
2786 if (gsym->needs_dynamic_reloc(Scan::get_reference_flags(r_type)))
2789 && gsym->may_need_copy_reloc())
2792 data_shndx, output_section, gsym, reloc);
2796 && gsym->type() == elfcpp::STT_GNU_IFUNC
2797 && gsym->can_use_relative_reloc(false)
2798 && !gsym->is_from_dynobj()
2799 && !gsym->is_undefined()
2800 && !gsym->is_preemptible())
2809 rela_dyn->add_symbolless_global_addend(gsym, r_type,
2817 && gsym->can_use_relative_reloc(false))
2820 rela_dyn->add_global_relative(gsym, elfcpp::R_X86_64_RELATIVE,
2828 this->check_non_pic(object, r_type, gsym);
2830 rela_dyn->add_global(gsym, r_type, output_section, object,
2845 if (gsym->needs_plt_entry())
2846 target->make_plt_entry(symtab, layout, gsym);
2848 if (gsym->needs_dynamic_reloc(Scan::get_reference_flags(r_type)))
2851 && gsym->may_need_copy_reloc())
2854 data_shndx, output_section, gsym, reloc);
2858 this->check_non_pic(object, r_type, gsym);
2860 rela_dyn->add_global(gsym, r_type, output_section, object,
2876 if (gsym->final_value_is_known())
2879 if (gsym->type() == elfcpp::STT_GNU_IFUNC)
2880 got->add_global_plt(gsym, GOT_TYPE_STANDARD);
2882 got->add_global(gsym, GOT_TYPE_STANDARD);
2902 if (gsym->is_from_dynobj()
2903 || gsym->is_undefined()
2904 || gsym->is_preemptible()
2905 || (gsym->visibility() == elfcpp::STV_PROTECTED
2907 || (gsym->type() == elfcpp::STT_GNU_IFUNC
2909 got->add_global_with_rel(gsym, GOT_TYPE_STANDARD, rela_dyn,
2917 if (gsym->type() != elfcpp::STT_GNU_IFUNC)
2918 is_new = got->add_global(gsym, GOT_TYPE_STANDARD);
2921 is_new = got->add_global_plt(gsym, GOT_TYPE_STANDARD);
2924 if (gsym->is_from_dynobj()
2926 gsym->set_needs_dynsym_value();
2930 unsigned int got_off = gsym->got_offset(GOT_TYPE_STANDARD);
2931 rela_dyn->add_global_relative(gsym,
2944 if (gsym->final_value_is_known())
2949 if (gsym->is_defined()
2950 && !gsym->is_from_dynobj()
2951 && !gsym->is_preemptible())
2953 target->make_plt_entry(symtab, layout, gsym);
2965 && !gsym->final_value_is_known())
2966 target->make_plt_entry(symtab, layout, gsym);
2994 const bool is_final = (gsym->final_value_is_known() ||
2996 gsym->is_undefined() &&
3009 got->add_global_pair_with_rel(gsym, GOT_TYPE_TLS_PAIR,
3019 got->add_global_with_rel(gsym, GOT_TYPE_TLS_OFFSET,
3024 unsupported_reloc_global(object, r_type, gsym);
3042 got->add_global_pair_with_rel(gsym, GOT_TYPE_TLS_DESC, rt,
3050 got->add_global_with_rel(gsym, GOT_TYPE_TLS_OFFSET,
3055 unsupported_reloc_global(object, r_type, gsym);
3068 unsupported_reloc_global(object, r_type, gsym);
3082 got->add_global_with_rel(gsym, GOT_TYPE_TLS_OFFSET,
3087 unsupported_reloc_global(object, r_type, gsym);
3093 unsupported_reloc_global(object, r_type, gsym);
3107 gsym->demangled_name().c_str());
3286 const Sized_symbol<size>* gsym,
3298 || gsym == NULL
3299 || strcmp(gsym->name(), "__tls_get_addr") != 0)
3318 if (gsym != NULL
3319 && gsym->use_plt_offset(Scan::get_reference_flags(r_type)))
3321 symval.set_output_value(target->plt_address_for_global(gsym));
3324 else if (gsym == NULL && psymval->is_ifunc_symbol())
3351 if (gsym != NULL)
3353 gold_assert(gsym->has_got_offset(GOT_TYPE_STANDARD));
3354 got_offset = gsym->got_offset(GOT_TYPE_STANDARD) - target->got_size();
3427 gold_assert(gsym == NULL
3428 || gsym->has_plt_offset()
3429 || gsym->final_value_is_known()
3430 || (gsym->is_defined()
3431 && !gsym->is_from_dynobj()
3432 && !gsym->is_preemptible()));
3442 gold_assert(gsym);
3443 gold_assert(gsym->has_plt_offset()
3444 || gsym->final_value_is_known());
3460 gold_assert(gsym);
3477 gold_assert(gsym);
3534 this->relocate_tls(relinfo, target, relnum, rela, r_type, gsym, psymval,
3560 const Sized_symbol<size>* gsym,
3575 const bool is_final = (gsym == NULL
3577 : gsym->final_value_is_known());
3598 || issue_undefined_symbol_error(gsym));
3612 if (gsym != NULL)
3614 gold_assert(gsym->has_got_offset(got_type));
3615 got_offset = gsym->got_offset(got_type) - target->got_size();
3657 || issue_undefined_symbol_error(gsym));
3680 if (gsym != NULL)
3682 gold_assert(gsym->has_got_offset(got_type));
3683 got_offset += gsym->got_offset(got_type) - target->got_size();
3697 || issue_undefined_symbol_error(gsym));
3734 || issue_undefined_symbol_error(gsym));
3769 || issue_undefined_symbol_error(gsym));
3784 || issue_undefined_symbol_error(gsym));
3793 if (gsym != NULL
3794 && gsym->is_undefined()
3808 || issue_undefined_symbol_error(gsym));
3822 if (gsym != NULL)
3824 gold_assert(gsym->has_got_offset(GOT_TYPE_TLS_OFFSET));
3825 got_offset = (gsym->got_offset(GOT_TYPE_TLS_OFFSET)
3850 || issue_undefined_symbol_error(gsym));
4198 const Symbol* gsym,
4210 gsym,
4368 Target_x86_64<size>::do_dynsym_value(const Symbol* gsym) const
4370 gold_assert(gsym->is_from_dynobj() && gsym->has_plt_offset());
4371 return this->plt_address_for_global(gsym);