Lines Matching defs:sym
812 Sym *sym;
832 sym = gnu_lookup(s_info_g, ght, dso, verinfo);
837 sym = sysv_lookup(verinfo, s_info_s, dso);
840 if (!sym)
843 if (!sym->st_shndx)
844 if (need_def || (sym->st_info & 0xf) == STT_TLS || ARCH_SYM_REJECT_UND(sym))
847 if (!sym->st_value)
848 if ((sym->st_info & 0xf) != STT_TLS)
851 if (!(1 << (sym->st_info & 0xf) & OK_TYPES))
854 if (!(1 << (sym->st_info >> 4) & OK_BINDS))
857 def.sym = sym;
871 Sym *sym;
878 sym = gnu_lookup(s_info_g, ght, dso, verinfo);
881 sym = sysv_lookup(verinfo, s_info_s, dso);
884 if (!sym) continue;
885 if (!sym->st_shndx)
886 if (need_def || (sym->st_info&0xf) == STT_TLS
887 || ARCH_SYM_REJECT_UND(sym))
889 if (!sym->st_value)
890 if ((sym->st_info&0xf) != STT_TLS)
892 if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue;
893 if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue;
894 def.sym = sym;
910 Sym *sym;
916 sym = gnu_lookup(s_info_g, ght, dso, verinfo);
919 sym = sysv_lookup(verinfo, s_info_s, dso);
922 if (!sym) continue;
923 if (!sym->st_shndx)
924 if (need_def || (sym->st_info&0xf) == STT_TLS
925 || ARCH_SYM_REJECT_UND(sym))
927 if (!sym->st_value)
928 if ((sym->st_info&0xf) != STT_TLS)
930 if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue;
931 if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue;
932 def.sym = sym;
952 Sym *sym;
955 sym = gnu_lookup(s_info_g, ght, dso_searching, verinfo);
958 sym = sysv_lookup(verinfo, s_info_s, dso_searching);
960 if (!sym) continue;
961 if (!sym->st_shndx)
962 if (need_def || (sym->st_info&0xf) == STT_TLS
963 || ARCH_SYM_REJECT_UND(sym))
965 if (!sym->st_value)
966 if ((sym->st_info&0xf) != STT_TLS)
968 if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue;
969 if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue;
970 def.sym = sym;
1062 Sym *sym;
1104 sym = syms + sym_index;
1105 name = strings + sym->st_name;
1114 def = (struct symdef){ .dso = dso->cache_dso, .sym = dso->cache_sym };
1116 def = (sym->st_info>>4) == STB_LOCAL
1117 ? (struct symdef){ .dso = dso, .sym = sym }
1122 dso->cache_sym = def.sym;
1125 if (!def.sym && (sym->st_shndx != SHN_UNDEF
1126 || sym->st_info>>4 != STB_WEAK)) {
1143 sym = 0;
1144 def.sym = 0;
1148 sym_val = def.sym ? (size_t)laddr(def.dso, def.sym->st_value) : 0;
1149 tls_val = def.sym ? def.sym->st_value : 0;
1174 if (sym) *reloc_addr = sym_val + addend;
1178 memcpy(reloc_addr, (void *)sym_val, sym->st_size);
1185 *reloc_addr = def.sym ? (size_t)(def.dso->funcdescs
1186 + (def.sym - def.dso->syms)) : 0;
1189 if ((sym->st_info&0xf) == STT_SECTION) *reloc_addr += sym_val;
1191 reloc_addr[1] = def.sym ? (size_t)def.dso->got : 0;
1218 dso->name, sym ? name : "(local)" );
2299 if (find_sym(&temp_dso, "__libc_start_main", 1).sym &&
2300 find_sym(&temp_dso, "stdin", 1).sym) {
2562 Sym *sym = p->syms + j;
2564 for (i-=j; i; i--, sym++, rel[0]+=sizeof(size_t)) {
2565 rel[1] = R_INFO(sym-p->syms, R_MIPS_JUMP_SLOT);
3069 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls2b_def.sym-ldso.syms])(sp, auxv, aux);
3070 else ((stage3_func)laddr(&ldso, dls2b_def.sym->st_value))(sp, auxv, aux);
3093 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls3_def.sym-ldso.syms])(sp, auxv, aux);
3094 else ((stage3_func)laddr(&ldso, dls3_def.sym->st_value))(sp, auxv, aux);
4153 if (!def.sym) {
4160 if ((def.sym->st_info&0xf) == STT_TLS)
4161 return __tls_get_addr((tls_mod_off_t []){def.dso->tls_id, def.sym->st_value-DTP_OFFSET});
4162 if (DL_FDPIC && (def.sym->st_info&0xf) == STT_FUNC)
4163 return def.dso->funcdescs + (def.sym - def.dso->syms);
4164 return laddr(def.dso, def.sym->st_value);
4497 static inline int sym_is_matched(const Sym* sym, size_t addr_offset_so) {
4498 return sym->st_value &&
4499 (1<<(sym->st_info&0xf) != STT_TLS) &&
4500 (addr_offset_so >= sym->st_value) &&
4501 (addr_offset_so < sym->st_value + sym->st_size);
4506 Sym *sym = p->syms;
4507 for (; nsym; nsym--, sym++) {
4508 if (sym_is_matched(sym, addr_offset_so)) {
4509 return sym;
4524 Sym *sym = &sym_tab[first_hash_sym_index];
4533 if (sym_is_matched(sym, addr_offset_so)) {
4534 return sym;
4536 sym++;
4544 if (sym_is_matched(sym, addr_offset_so)) {
4545 return sym;
4547 sym++;
4657 if (find_sym(&ldso, redir, 1).sym) s = redir;
5788 if (find_sym(task->p, "__libc_start_main", 1).sym &&
5789 find_sym(task->p, "stdin", 1).sym) {