Lines Matching defs:sym
778 Sym *sym;
798 sym = gnu_lookup(s_info_g, ght, dso, verinfo);
803 sym = sysv_lookup(verinfo, s_info_s, dso);
806 if (!sym)
809 if (!sym->st_shndx)
810 if (need_def || (sym->st_info & 0xf) == STT_TLS || ARCH_SYM_REJECT_UND(sym))
813 if (!sym->st_value)
814 if ((sym->st_info & 0xf) != STT_TLS)
817 if (!(1 << (sym->st_info & 0xf) & OK_TYPES))
820 if (!(1 << (sym->st_info >> 4) & OK_BINDS))
823 def.sym = sym;
837 Sym *sym;
843 sym = gnu_lookup(s_info_g, ght, dso, verinfo);
846 sym = sysv_lookup(verinfo, s_info_s, dso);
849 if (!sym) continue;
850 if (!sym->st_shndx)
851 if (need_def || (sym->st_info&0xf) == STT_TLS
852 || ARCH_SYM_REJECT_UND(sym))
854 if (!sym->st_value)
855 if ((sym->st_info&0xf) != STT_TLS)
857 if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue;
858 if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue;
859 def.sym = sym;
875 Sym *sym;
881 sym = gnu_lookup(s_info_g, ght, dso, verinfo);
884 sym = sysv_lookup(verinfo, s_info_s, dso);
887 if (!sym) continue;
888 if (!sym->st_shndx)
889 if (need_def || (sym->st_info&0xf) == STT_TLS
890 || ARCH_SYM_REJECT_UND(sym))
892 if (!sym->st_value)
893 if ((sym->st_info&0xf) != STT_TLS)
895 if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue;
896 if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue;
897 def.sym = sym;
917 Sym *sym;
920 sym = gnu_lookup(s_info_g, ght, dso_searching, verinfo);
923 sym = sysv_lookup(verinfo, s_info_s, dso_searching);
925 if (!sym) continue;
926 if (!sym->st_shndx)
927 if (need_def || (sym->st_info&0xf) == STT_TLS
928 || ARCH_SYM_REJECT_UND(sym))
930 if (!sym->st_value)
931 if ((sym->st_info&0xf) != STT_TLS)
933 if (!(1<<(sym->st_info&0xf) & OK_TYPES)) continue;
934 if (!(1<<(sym->st_info>>4) & OK_BINDS)) continue;
935 def.sym = sym;
1027 Sym *sym;
1069 sym = syms + sym_index;
1070 name = strings + sym->st_name;
1079 def = (struct symdef){ .dso = dso->cache_dso, .sym = dso->cache_sym };
1081 def = (sym->st_info>>4) == STB_LOCAL
1082 ? (struct symdef){ .dso = dso, .sym = sym }
1087 dso->cache_sym = def.sym;
1090 if (!def.sym && (sym->st_shndx != SHN_UNDEF
1091 || sym->st_info>>4 != STB_WEAK)) {
1108 sym = 0;
1109 def.sym = 0;
1113 sym_val = def.sym ? (size_t)laddr(def.dso, def.sym->st_value) : 0;
1114 tls_val = def.sym ? def.sym->st_value : 0;
1139 if (sym) *reloc_addr = sym_val + addend;
1143 memcpy(reloc_addr, (void *)sym_val, sym->st_size);
1150 *reloc_addr = def.sym ? (size_t)(def.dso->funcdescs
1151 + (def.sym - def.dso->syms)) : 0;
1154 if ((sym->st_info&0xf) == STT_SECTION) *reloc_addr += sym_val;
1156 reloc_addr[1] = def.sym ? (size_t)def.dso->got : 0;
1183 dso->name, sym ? name : "(local)" );
2111 if (find_sym(&temp_dso, "__libc_start_main", 1).sym &&
2112 find_sym(&temp_dso, "stdin", 1).sym) {
2334 Sym *sym = p->syms + j;
2336 for (i-=j; i; i--, sym++, rel[0]+=sizeof(size_t)) {
2337 rel[1] = R_INFO(sym-p->syms, R_MIPS_JUMP_SLOT);
2839 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls2b_def.sym-ldso.syms])(sp, auxv, aux);
2840 else ((stage3_func)laddr(&ldso, dls2b_def.sym->st_value))(sp, auxv, aux);
2863 if (DL_FDPIC) ((stage3_func)&ldso.funcdescs[dls3_def.sym-ldso.syms])(sp, auxv, aux);
2864 else ((stage3_func)laddr(&ldso, dls3_def.sym->st_value))(sp, auxv, aux);
3836 if (!def.sym) {
3843 if ((def.sym->st_info&0xf) == STT_TLS)
3844 return __tls_get_addr((tls_mod_off_t []){def.dso->tls_id, def.sym->st_value-DTP_OFFSET});
3845 if (DL_FDPIC && (def.sym->st_info&0xf) == STT_FUNC)
3846 return def.dso->funcdescs + (def.sym - def.dso->syms);
3847 return laddr(def.dso, def.sym->st_value);
4155 static inline int sym_is_matched(const Sym* sym, size_t addr_offset_so) {
4156 return sym->st_value &&
4157 (1<<(sym->st_info&0xf) != STT_TLS) &&
4158 (addr_offset_so >= sym->st_value) &&
4159 (addr_offset_so < sym->st_value + sym->st_size);
4164 Sym *sym = p->syms;
4165 for (; nsym; nsym--, sym++) {
4166 if (sym_is_matched(sym, addr_offset_so)) {
4167 return sym;
4182 Sym *sym = &sym_tab[first_hash_sym_index];
4191 if (sym_is_matched(sym, addr_offset_so)) {
4192 return sym;
4194 sym++;
4202 if (sym_is_matched(sym, addr_offset_so)) {
4203 return sym;
4205 sym++;
4315 if (find_sym(&ldso, redir, 1).sym) s = redir;
5399 if (find_sym(task->p, "__libc_start_main", 1).sym &&
5400 find_sym(task->p, "stdin", 1).sym) {