Lines Matching refs:sym
118 const elfcpp::Sym<size, big_endian>& sym, in init_base_object() argument
121 this->init_fields(name, version, sym.get_st_type(), sym.get_st_bind(), in init_base_object()
122 sym.get_st_visibility(), sym.get_st_nonvis()); in init_base_object()
220 const elfcpp::Sym<size, big_endian>& sym, in init_object() argument
223 this->init_base_object(name, version, object, sym, st_shndx, is_ordinary); in init_object()
224 this->value_ = sym.get_st_value(); in init_object()
225 this->symsize_ = sym.get_st_size(); in init_object()
610 Symbol* sym = this->lookup(name); in gc_mark_undef_symbols() local
611 gold_assert(sym != NULL); in gc_mark_undef_symbols()
612 if (sym->source() == Symbol::FROM_OBJECT in gc_mark_undef_symbols()
613 && !sym->object()->is_dynamic()) in gc_mark_undef_symbols()
615 this->gc_mark_symbol(sym); in gc_mark_undef_symbols()
625 Symbol* sym = this->lookup(name); in gc_mark_undef_symbols() local
628 if (sym != NULL in gc_mark_undef_symbols()
629 && sym->source() == Symbol::FROM_OBJECT in gc_mark_undef_symbols()
630 && !sym->object()->is_dynamic()) in gc_mark_undef_symbols()
632 this->gc_mark_symbol(sym); in gc_mark_undef_symbols()
641 Symbol* sym = this->lookup(p->c_str()); in gc_mark_undef_symbols() local
642 gold_assert(sym != NULL); in gc_mark_undef_symbols()
643 if (sym->source() == Symbol::FROM_OBJECT in gc_mark_undef_symbols()
644 && !sym->object()->is_dynamic()) in gc_mark_undef_symbols()
646 this->gc_mark_symbol(sym); in gc_mark_undef_symbols()
652 Symbol_table::gc_mark_symbol(Symbol* sym) in gc_mark_symbol() argument
656 unsigned int shndx = sym->shndx(&is_ordinary); in gc_mark_symbol()
657 if (is_ordinary && shndx != elfcpp::SHN_UNDEF && !sym->object()->is_dynamic()) in gc_mark_symbol()
660 Relobj* relobj = static_cast<Relobj*>(sym->object()); in gc_mark_symbol()
663 parameters->target().gc_mark_symbol(this, sym); in gc_mark_symbol()
669 Symbol_table::gc_mark_dyn_syms(Symbol* sym) in gc_mark_dyn_syms() argument
671 if (sym->in_dyn() && sym->source() == Symbol::FROM_OBJECT in gc_mark_dyn_syms()
672 && !sym->object()->is_dynamic()) in gc_mark_dyn_syms()
673 this->gc_mark_symbol(sym); in gc_mark_dyn_syms()
743 this->resolve(to, esym.sym(), shndx, is_ordinary, shndx, from->object(), in resolve()
757 Symbol_table::force_local(Symbol* sym) in force_local() argument
759 if (!sym->is_defined() && !sym->is_common()) in force_local()
761 if (sym->is_forced_local()) in force_local()
766 sym->set_is_forced_local(); in force_local()
767 this->forced_locals_.push_back(sym); in force_local()
825 Symbol_table::define_default_version(Sized_symbol<size>* sym, in define_default_version() argument
834 pdef->second = sym; in define_default_version()
835 sym->set_is_default(); in define_default_version()
837 else if (pdef->second == sym) in define_default_version()
877 gold_assert(pdef->second->version() != sym->version()); in define_default_version()
878 else if (sym->visibility() != elfcpp::STV_DEFAULT in define_default_version()
882 && sym->is_from_dynobj()) in define_default_version()
885 && sym->is_from_dynobj() in define_default_version()
887 && pdef->second->object() != sym->object()) in define_default_version()
893 Symbol_table::resolve<size, big_endian>(sym, symdef); in define_default_version()
894 this->make_forwarder(pdef->second, sym); in define_default_version()
895 pdef->second = sym; in define_default_version()
896 sym->set_is_default(); in define_default_version()
939 const elfcpp::Sym<size, big_endian>& sym, in add_from_object() argument
1005 this->resolve(ret, sym, st_shndx, is_ordinary, orig_st_shndx, object, in add_from_object()
1079 this->resolve(ret, sym, st_shndx, is_ordinary, orig_st_shndx, in add_from_object()
1098 ret = target->make_symbol(name, sym.get_st_type(), object, in add_from_object()
1099 st_shndx, sym.get_st_value()); in add_from_object()
1117 ret->init_object(name, version, object, sym, st_shndx, is_ordinary); in add_from_object()
1201 elfcpp::Sym<size, big_endian> sym(p); in add_from_relobj() local
1203 unsigned int st_name = sym.get_st_name(); in add_from_relobj()
1222 sym.get_st_shndx(), in add_from_relobj()
1304 elfcpp::Sym<size, big_endian>* psym = &sym; in add_from_relobj()
1321 sw.put_st_value(sym.get_st_value() in add_from_relobj()
1392 elfcpp::Sym<size, big_endian>* sym) in add_from_pluginobj() argument
1394 unsigned int st_shndx = sym->get_st_shndx(); in add_from_pluginobj()
1439 is_default_version, *sym, st_shndx, in add_from_pluginobj()
1504 elfcpp::Sym<size, big_endian> sym(p); in add_from_dynobj() local
1511 if (sym.get_st_bind() == elfcpp::STB_LOCAL in add_from_dynobj()
1512 || sym.get_st_visibility() == elfcpp::STV_INTERNAL in add_from_dynobj()
1513 || sym.get_st_visibility() == elfcpp::STV_HIDDEN) in add_from_dynobj()
1521 elfcpp::Sym<size, big_endian>* psym = &sym; in add_from_dynobj()
1524 if (sym.get_st_visibility() == elfcpp::STV_PROTECTED in add_from_dynobj()
1525 || sym.get_st_type() == elfcpp::STT_GNU_IFUNC) in add_from_dynobj()
1529 if (sym.get_st_visibility() == elfcpp::STV_PROTECTED) in add_from_dynobj()
1530 sw.put_st_other(elfcpp::STV_DEFAULT, sym.get_st_nonvis()); in add_from_dynobj()
1531 if (sym.get_st_type() == elfcpp::STT_GNU_IFUNC) in add_from_dynobj()
1532 sw.put_st_info(sym.get_st_bind(), elfcpp::STT_FUNC); in add_from_dynobj()
1657 && sym.get_st_visibility() == elfcpp::STV_PROTECTED) in add_from_dynobj()
1675 elfcpp::Sym<size, big_endian>* sym) in add_from_incrobj() argument
1677 unsigned int st_shndx = sym->get_st_shndx(); in add_from_incrobj()
1688 is_default_version, *sym, st_shndx, in add_from_incrobj()
1817 Sized_symbol<size>* sym; in define_special_symbol() local
1926 sym = new Sized_symbol<size>(); in define_special_symbol()
1931 sym = sized_target->make_symbol(*pname, elfcpp::STT_NOTYPE, in define_special_symbol()
1933 if (sym == NULL) in define_special_symbol()
1938 add_loc->second = sym; in define_special_symbol()
1943 add_def_loc->second = sym; in define_special_symbol()
1947 return sym; in define_special_symbol()
2012 Sized_symbol<size>* sym; in do_define_in_output_data() local
2020 sym = this->define_special_symbol<size, true>(&name, &version, in do_define_in_output_data()
2033 sym = this->define_special_symbol<size, false>(&name, &version, in do_define_in_output_data()
2044 if (sym == NULL) in do_define_in_output_data()
2047 sym->init_output_data(name, version, od, value, symsize, type, binding, in do_define_in_output_data()
2054 this->force_local(sym); in do_define_in_output_data()
2056 sym->set_is_default(); in do_define_in_output_data()
2057 return sym; in do_define_in_output_data()
2061 this->override_with_special(oldsym, sym); in do_define_in_output_data()
2064 return sym; in do_define_in_output_data()
2070 delete sym; in do_define_in_output_data()
2135 Sized_symbol<size>* sym; in do_define_in_output_segment() local
2143 sym = this->define_special_symbol<size, true>(&name, &version, in do_define_in_output_segment()
2156 sym = this->define_special_symbol<size, false>(&name, &version, in do_define_in_output_segment()
2167 if (sym == NULL) in do_define_in_output_segment()
2170 sym->init_output_segment(name, version, os, value, symsize, type, binding, in do_define_in_output_segment()
2177 this->force_local(sym); in do_define_in_output_segment()
2179 sym->set_is_default(); in do_define_in_output_segment()
2180 return sym; in do_define_in_output_segment()
2184 this->override_with_special(oldsym, sym); in do_define_in_output_segment()
2187 return sym; in do_define_in_output_segment()
2192 delete sym; in do_define_in_output_segment()
2256 Sized_symbol<size>* sym; in do_define_as_constant() local
2264 sym = this->define_special_symbol<size, true>(&name, &version, in do_define_as_constant()
2277 sym = this->define_special_symbol<size, false>(&name, &version, in do_define_as_constant()
2288 if (sym == NULL) in do_define_as_constant()
2291 sym->init_constant(name, version, value, symsize, type, binding, visibility, in do_define_as_constant()
2302 this->force_local(sym); in do_define_as_constant()
2305 sym->set_is_default(); in do_define_as_constant()
2306 return sym; in do_define_as_constant()
2311 this->override_with_special(oldsym, sym); in do_define_as_constant()
2314 return sym; in do_define_as_constant()
2319 delete sym; in do_define_as_constant()
2412 Symbol* sym = csym; in define_with_copy_reloc() local
2415 sym = this->weak_aliases_[sym]; in define_with_copy_reloc()
2416 if (sym == csym) in define_with_copy_reloc()
2418 gold_assert(sym->output_data() == posd); in define_with_copy_reloc()
2420 sym->set_is_copied_from_dynobj(); in define_with_copy_reloc()
2421 this->copied_symbol_dynobjs_[sym] = dynobj; in define_with_copy_reloc()
2430 Symbol_table::get_copy_source(const Symbol* sym) const in get_copy_source()
2432 gold_assert(sym->is_copied_from_dynobj()); in get_copy_source()
2434 this->copied_symbol_dynobjs_.find(sym); in get_copy_source()
2494 Sized_symbol<size>* sym; in add_undefined_symbol_from_command_line() local
2500 sym = this->define_special_symbol<size, true>(&name, &version, in add_undefined_symbol_from_command_line()
2513 sym = this->define_special_symbol<size, false>(&name, &version, in add_undefined_symbol_from_command_line()
2526 sym->init_undefined(name, version, 0, elfcpp::STT_NOTYPE, elfcpp::STB_GLOBAL, in add_undefined_symbol_from_command_line()
2550 Symbol* sym = *p; in set_dynsym_indexes() local
2551 gold_assert(sym->is_forced_local()); in set_dynsym_indexes()
2552 if (sym->has_dynsym_index()) in set_dynsym_indexes()
2554 if (!sym->should_add_dynsym_entry(this)) in set_dynsym_indexes()
2555 sym->set_dynsym_index(-1U); in set_dynsym_indexes()
2558 sym->set_dynsym_index(index); in set_dynsym_indexes()
2561 dynpool->add(sym->name(), false, NULL); in set_dynsym_indexes()
2562 if (sym->type() == elfcpp::STT_GNU_IFUNC) in set_dynsym_indexes()
2576 Symbol* sym = p->second; in set_dynsym_indexes() local
2577 if (sym->is_forced_local()) in set_dynsym_indexes()
2579 if (!sym->should_add_dynsym_entry(this)) in set_dynsym_indexes()
2580 sym->set_dynsym_index(-1U); in set_dynsym_indexes()
2583 dyn_symbols.push_back(sym); in set_dynsym_indexes()
2584 if (sym->type() == elfcpp::STT_GNU_IFUNC in set_dynsym_indexes()
2585 || (sym->binding() == elfcpp::STB_GNU_UNIQUE in set_dynsym_indexes()
2599 Symbol* sym = p->second; in set_dynsym_indexes() local
2601 if (sym->is_forced_local()) in set_dynsym_indexes()
2608 if (!sym->should_add_dynsym_entry(this)) in set_dynsym_indexes()
2609 sym->set_dynsym_index(-1U); in set_dynsym_indexes()
2610 else if (!sym->has_dynsym_index()) in set_dynsym_indexes()
2612 sym->set_dynsym_index(index); in set_dynsym_indexes()
2614 syms->push_back(sym); in set_dynsym_indexes()
2615 dynpool->add(sym->name(), false, NULL); in set_dynsym_indexes()
2616 if (sym->type() == elfcpp::STT_GNU_IFUNC in set_dynsym_indexes()
2617 || (sym->binding() == elfcpp::STB_GNU_UNIQUE in set_dynsym_indexes()
2624 if (sym->version() != NULL) in set_dynsym_indexes()
2626 if (!sym->is_from_dynobj() in set_dynsym_indexes()
2627 || !sym->object()->as_needed() in set_dynsym_indexes()
2628 || sym->object()->is_needed()) in set_dynsym_indexes()
2629 versions->record_version(this, dynpool, sym); in set_dynsym_indexes()
2636 sym->name(), sym->version(), in set_dynsym_indexes()
2637 sym->object()->name().c_str()); in set_dynsym_indexes()
2638 sym->clear_version(); in set_dynsym_indexes()
2724 Symbol_table::add_to_final_symtab(Symbol* sym, Stringpool* pool, in add_to_final_symtab() argument
2727 sym->set_symtab_index(*pindex); in add_to_final_symtab()
2728 if (sym->version() == NULL || !parameters->options().relocatable()) in add_to_final_symtab()
2729 pool->add(sym->name(), false, NULL); in add_to_final_symtab()
2731 pool->add(sym->versioned_name(), true, NULL); in add_to_final_symtab()
2757 Symbol* sym = *p; in sized_finalize() local
2758 gold_assert(sym->is_forced_local()); in sized_finalize()
2759 if (this->sized_finalize_symbol<size>(sym)) in sized_finalize()
2761 this->add_to_final_symtab<size>(sym, pool, &index, &off); in sized_finalize()
2763 if (sym->type() == elfcpp::STT_GNU_IFUNC) in sized_finalize()
2773 Symbol* sym = p->second; in sized_finalize() local
2774 if (this->sized_finalize_symbol<size>(sym)) in sized_finalize()
2776 this->add_to_final_symtab<size>(sym, pool, &index, &off); in sized_finalize()
2777 if (sym->type() == elfcpp::STT_GNU_IFUNC in sized_finalize()
2778 || (sym->binding() == elfcpp::STB_GNU_UNIQUE in sized_finalize()
2804 const Sized_symbol<size>* sym, in compute_final_value() argument
2810 switch (sym->source()) in compute_final_value()
2815 unsigned int shndx = sym->shndx(&is_ordinary); in compute_final_value()
2825 Object* symobj = sym->object(); in compute_final_value()
2841 value = sym->value(); in compute_final_value()
2870 gold_assert(static_or_reloc || sym->dynsym_index() == -1U); in compute_final_value()
2880 value = os->output_address(relobj, shndx, sym->value()); in compute_final_value()
2886 if (sym->type() == elfcpp::STT_TLS) in compute_final_value()
2887 value = sym->value() + os->tls_offset() + secoff; in compute_final_value()
2889 value = sym->value() + os->address() + secoff; in compute_final_value()
2897 Output_data* od = sym->output_data(); in compute_final_value()
2898 value = sym->value(); in compute_final_value()
2899 if (sym->type() != elfcpp::STT_TLS) in compute_final_value()
2907 if (sym->offset_is_from_end()) in compute_final_value()
2914 Output_segment* os = sym->output_segment(); in compute_final_value()
2915 value = sym->value(); in compute_final_value()
2916 if (sym->type() != elfcpp::STT_TLS) in compute_final_value()
2918 switch (sym->offset_base()) in compute_final_value()
2935 value = sym->value(); in compute_final_value()
2959 Sized_symbol<size>* sym = static_cast<Sized_symbol<size>*>(unsized_sym); in sized_finalize_symbol() local
2963 if (sym->has_symtab_index()) in sized_finalize_symbol()
2966 if (!sym->in_reg()) in sized_finalize_symbol()
2968 gold_assert(!sym->has_symtab_index()); in sized_finalize_symbol()
2969 sym->set_symtab_index(-1U); in sized_finalize_symbol()
2970 gold_assert(sym->dynsym_index() == -1U); in sized_finalize_symbol()
2976 if (!sym->in_real_elf()) in sized_finalize_symbol()
2978 gold_assert(!sym->has_symtab_index()); in sized_finalize_symbol()
2979 sym->set_symtab_index(-1U); in sized_finalize_symbol()
2985 Value_type value = this->compute_final_value(sym, &status); in sized_finalize_symbol()
2994 unsigned int shndx = sym->shndx(&is_ordinary); in sized_finalize_symbol()
2996 sym->demangled_name().c_str(), shndx); in sized_finalize_symbol()
3000 sym->set_symtab_index(-1U); in sized_finalize_symbol()
3006 sym->set_value(value); in sized_finalize_symbol()
3009 || !parameters->options().should_retain_symbol(sym->name())) in sized_finalize_symbol()
3011 sym->set_symtab_index(-1U); in sized_finalize_symbol()
3095 Sized_symbol<size>* sym = static_cast<Sized_symbol<size>*>(p->second); in sized_write_globals() local
3098 this->warn_about_undefined_dynobj_symbol(sym); in sized_write_globals()
3100 unsigned int sym_index = sym->symtab_index(); in sized_write_globals()
3105 dynsym_index = sym->dynsym_index(); in sized_write_globals()
3114 typename elfcpp::Elf_types<size>::Elf_Addr sym_value = sym->value(); in sized_write_globals()
3116 elfcpp::STB binding = sym->binding(); in sized_write_globals()
3122 && sym->is_undefined()) in sized_write_globals()
3130 switch (sym->source()) in sized_write_globals()
3135 unsigned int in_shndx = sym->shndx(&is_ordinary); in sized_write_globals()
3142 sym->demangled_name().c_str(), in_shndx); in sized_write_globals()
3147 Object* symobj = sym->object(); in sized_write_globals()
3150 if (sym->needs_dynsym_value()) in sized_write_globals()
3151 dynsym_value = target.dynsym_value(sym); in sized_write_globals()
3153 if (sym->is_undef_binding_weak()) in sized_write_globals()
3205 Output_data* od = sym->output_data(); in sized_write_globals()
3230 Output_segment* oseg = sym->output_segment(); in sized_write_globals()
3256 this->sized_write_symbol<size, big_endian>(sym, sym_value, shndx, in sized_write_globals()
3265 this->sized_write_symbol<size, big_endian>(sym, dynsym_value, shndx, in sized_write_globals()
3268 parameters->target().adjust_dyn_symbol(sym, pd); in sized_write_globals()
3277 Sized_symbol<size>* sym = static_cast<Sized_symbol<size>*>(*p); in sized_write_globals() local
3279 unsigned int sym_index = sym->symtab_index(); in sized_write_globals()
3284 dynsym_index = sym->dynsym_index(); in sized_write_globals()
3287 switch (sym->source()) in sized_write_globals()
3304 this->sized_write_symbol<size, big_endian>(sym, sym->value(), shndx, in sized_write_globals()
3305 sym->binding(), sympool, in sized_write_globals()
3314 this->sized_write_symbol<size, big_endian>(sym, sym->value(), shndx, in sized_write_globals()
3315 sym->binding(), dynpool, in sized_write_globals()
3331 Sized_symbol<size>* sym, in sized_write_symbol() argument
3339 if (sym->version() == NULL || !parameters->options().relocatable()) in sized_write_symbol()
3340 osym.put_st_name(pool->get_offset(sym->name())); in sized_write_symbol()
3342 osym.put_st_name(pool->get_offset(sym->versioned_name())); in sized_write_symbol()
3345 if (shndx == elfcpp::SHN_UNDEF && sym->is_from_dynobj()) in sized_write_symbol()
3348 osym.put_st_size(sym->symsize()); in sized_write_symbol()
3349 elfcpp::STT type = sym->type(); in sized_write_symbol()
3350 gold_assert(type != elfcpp::STT_GNU_IFUNC || !sym->is_from_dynobj()); in sized_write_symbol()
3352 if (sym->is_forced_local()) in sized_write_symbol()
3356 osym.put_st_other(elfcpp::elf_st_other(sym->visibility(), sym->nonvis())); in sized_write_symbol()
3375 Symbol_table::warn_about_undefined_dynobj_symbol(Symbol* sym) const in warn_about_undefined_dynobj_symbol()
3378 if (sym->source() == Symbol::FROM_OBJECT in warn_about_undefined_dynobj_symbol()
3379 && sym->object()->is_dynamic() in warn_about_undefined_dynobj_symbol()
3380 && sym->shndx(&dummy) == elfcpp::SHN_UNDEF in warn_about_undefined_dynobj_symbol()
3381 && sym->binding() != elfcpp::STB_WEAK in warn_about_undefined_dynobj_symbol()
3383 && !parameters->target().is_defined_by_abi(sym) in warn_about_undefined_dynobj_symbol()
3384 && !sym->object()->is_in_system_directory()) in warn_about_undefined_dynobj_symbol()
3387 Dynobj* dynobj = static_cast<Dynobj*>(sym->object()); in warn_about_undefined_dynobj_symbol()
3389 gold_undefined_symbol(sym); in warn_about_undefined_dynobj_symbol()
3683 Symbol* sym = symtab->lookup(p->first, NULL); in note_warnings() local
3684 if (sym != NULL in note_warnings()
3685 && sym->source() == Symbol::FROM_OBJECT in note_warnings()
3686 && sym->object() == p->second.object) in note_warnings()
3687 sym->set_has_warning(); in note_warnings()
3696 Warnings::issue_warning(const Symbol* sym, in issue_warning() argument
3700 gold_assert(sym->has_warning()); in issue_warning()
3704 if (sym->object() == relinfo->object) in issue_warning()
3707 Warning_table::const_iterator p = this->warnings_.find(sym->name()); in issue_warning()
3792 elfcpp::Sym<32, false>* sym);
3802 elfcpp::Sym<32, true>* sym);
3812 elfcpp::Sym<64, false>* sym);
3822 elfcpp::Sym<64, true>* sym);
3896 elfcpp::Sym<32, false>* sym);
3906 elfcpp::Sym<32, true>* sym);
3916 elfcpp::Sym<64, false>* sym);
3926 elfcpp::Sym<64, true>* sym);
3933 Sized_symbol<32>* sym,
3942 Sized_symbol<64>* sym,
4006 Warnings::issue_warning<32, false>(const Symbol* sym,
4014 Warnings::issue_warning<32, true>(const Symbol* sym,
4022 Warnings::issue_warning<64, false>(const Symbol* sym,
4030 Warnings::issue_warning<64, true>(const Symbol* sym,