Home | History | Annotate | Download | only in gold

Lines Matching defs:gsym

163   do_plt_address_for_global(const Symbol* gsym) const
164 { return this->plt_section()->address_for_global(gsym); }
250 Symbol* gsym);
384 // Return the gsym for "__tls_get_addr". Cache if not already
1294 void add_entry(Symbol_table* symtab, Layout* layout, Symbol* gsym);
1400 Symbol* gsym;
1473 Symbol* gsym)
1475 gold_assert(!gsym->has_plt_offset());
1480 if (gsym->type() == elfcpp::STT_GNU_IFUNC
1481 && gsym->can_use_relative_reloc(false))
1485 gsym->set_plt_offset(plt_offset);
1491 gi.gsym = gsym;
1498 gsym->set_plt_offset(plt_offset);
1500 gsym->set_needs_dynsym_entry();
1501 this->rel_->add_global(gsym, elfcpp::R_SPARC_JMP_SLOT, this,
1553 p->rel->add_symbolless_global_addend(p->gsym, elfcpp::R_SPARC_JMP_IREL,
1617 Output_data_plt_sparc<size, big_endian>::address_for_global(const Symbol* gsym)
1620 if (gsym->type() == elfcpp::STT_GNU_IFUNC
1621 && gsym->can_use_relative_reloc(false))
1623 return this->address() + offset + gsym->plt_offset();
1826 Symbol* gsym)
1828 if (gsym->has_plt_offset())
1834 this->plt_->add_entry(symtab, layout, gsym);
2104 Symbol* gsym = target->tls_get_addr_sym(symtab);
2106 target->make_plt_entry(symtab, layout, gsym);
2549 Symbol* gsym)
2552 object->name().c_str(), r_type, gsym->demangled_name().c_str());
2568 Symbol* gsym)
2571 bool is_ifunc = gsym->type() == elfcpp::STT_GNU_IFUNC;
2577 && strcmp(gsym->name(), "_GLOBAL_OFFSET_TABLE_") == 0)
2585 target->make_plt_entry(symtab, layout, gsym);
2605 if (gsym->final_value_is_known())
2610 if (gsym->is_defined()
2611 && !gsym->is_from_dynobj()
2612 && !gsym->is_preemptible())
2614 target->make_plt_entry(symtab, layout, gsym);
2632 if (gsym->needs_plt_entry())
2633 target->make_plt_entry(symtab, layout, gsym);
2635 if (gsym->needs_dynamic_reloc(Scan::get_reference_flags(r_type)))
2638 && gsym->may_need_copy_reloc())
2641 data_shndx, output_section, gsym,
2648 rela_dyn->add_global(gsym, orig_r_type, output_section, object,
2682 if (gsym->needs_plt_entry())
2684 target->make_plt_entry(symtab, layout, gsym);
2689 if (gsym->is_from_dynobj() && !parameters->options().shared())
2690 gsym->set_needs_dynsym_value();
2693 if (gsym->needs_dynamic_reloc(Scan::get_reference_flags(r_type)))
2728 && gsym->may_need_copy_reloc())
2731 data_shndx, output_section, gsym, reloc);
2735 && gsym->type() == elfcpp::STT_GNU_IFUNC
2736 && gsym->can_use_relative_reloc(false)
2737 && !gsym->is_from_dynobj()
2738 && !gsym->is_undefined()
2739 && !gsym->is_preemptible())
2748 rela_dyn->add_symbolless_global_addend(gsym, r_type,
2756 && gsym->can_use_relative_reloc(false))
2759 rela_dyn->add_global_relative(gsym, elfcpp::R_SPARC_RELATIVE,
2769 if (gsym->is_from_dynobj()
2770 || gsym->is_undefined()
2771 || gsym->is_preemptible())
2772 rela_dyn->add_global(gsym, orig_r_type, output_section,
2777 rela_dyn->add_symbolless_global_addend(gsym, orig_r_type,
2790 if (gsym->is_defined()
2791 && !gsym->is_from_dynobj()
2792 && !gsym->is_preemptible()
2807 if (gsym->final_value_is_known())
2810 if (gsym->type() == elfcpp::STT_GNU_IFUNC)
2811 got->add_global_plt(gsym, GOT_TYPE_STANDARD);
2813 got->add_global(gsym, GOT_TYPE_STANDARD);
2819 bool is_ifunc = gsym->type() == elfcpp::STT_GNU_IFUNC;
2834 if (gsym->is_from_dynobj()
2835 || gsym->is_undefined()
2836 || gsym->is_preemptible()
2837 || (gsym->visibility() == elfcpp::STV_PROTECTED
2839 || (gsym->type() == elfcpp::STT_GNU_IFUNC
2841 && !gsym->is_forced_local()))
2851 gold_assert(!gsym->is_forced_local());
2852 got->add_global_with_rel(gsym, GOT_TYPE_STANDARD, rela_dyn,
2855 else if (!gsym->has_got_offset(GOT_TYPE_STANDARD))
2859 gsym->set_got_offset(GOT_TYPE_STANDARD, off);
2864 if (gsym->is_from_dynobj()
2866 gsym->set_needs_dynsym_value();
2868 rela_dyn->add_global_relative(gsym, elfcpp::R_SPARC_RELATIVE,
2896 const bool is_final = gsym->final_value_is_known();
2911 got->add_global_pair_with_rel(gsym, GOT_TYPE_TLS_PAIR,
2929 got->add_global_with_rel(gsym, GOT_TYPE_TLS_OFFSET,
2936 unsupported_reloc_global(object, r_type, gsym);
2952 unsupported_reloc_global(object, r_type, gsym);
2966 rela_dyn->add_symbolless_global_addend(gsym, orig_r_type,
2984 got->add_global_with_rel(gsym, GOT_TYPE_TLS_OFFSET,
2991 unsupported_reloc_global(object, r_type, gsym);
3016 unsupported_reloc_global(object, r_type, gsym);
3174 const Sized_symbol<size>* gsym,
3206 if (gsym != NULL
3207 && gsym->use_plt_offset(Scan::get_reference_flags(r_type)))
3211 value = target->plt_address_for_global(gsym);
3217 else if (gsym == NULL && orig_is_ifunc)
3241 if (gsym == NULL
3242 || (gsym->is_defined()
3243 && !gsym->is_from_dynobj()
3244 && !gsym->is_preemptible()
3254 if (gsym != NULL)
3256 gold_assert(gsym->has_got_offset(GOT_TYPE_STANDARD));
3257 got_offset = gsym->got_offset(GOT_TYPE_STANDARD);
3568 r_type, gsym, psymval, view,
3609 const Sized_symbol<size>* gsym,
3624 (gsym == NULL
3626 : gsym->final_value_is_known());
3673 if (gsym != NULL)
3675 gold_assert(gsym->has_got_offset(got_type));
3676 value = gsym->got_offset(got_type);
3925 if (gsym != NULL)
3927 gold_assert(gsym->has_got_offset(GOT_TYPE_TLS_OFFSET));
3928 value = gsym->got_offset(GOT_TYPE_TLS_OFFSET);
4254 Target_sparc<size, big_endian>::do_dynsym_value(const Symbol* gsym) const
4256 gold_assert(gsym->is_from_dynobj() && gsym->has_plt_offset());
4257 return this->plt_section()->address() + gsym->plt_offset();