Lines Matching refs:ss
615 int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss) in dso__synthesize_plt_symbols() argument
632 elf = ss->elf; in dso__synthesize_plt_symbols()
633 ehdr = ss->ehdr; in dso__synthesize_plt_symbols()
692 if (shdr_rel_plt.sh_link == ss->dynsym_idx) { in dso__synthesize_plt_symbols()
693 scn_dynsym = ss->dynsym; in dso__synthesize_plt_symbols()
694 shdr_dynsym = ss->dynshdr; in dso__synthesize_plt_symbols()
695 } else if (shdr_rel_plt.sh_link == ss->symtab_idx) { in dso__synthesize_plt_symbols()
700 scn_dynsym = ss->symtab; in dso__synthesize_plt_symbols()
701 shdr_dynsym = ss->symshdr; in dso__synthesize_plt_symbols()
1112 bool symsrc__possibly_runtime(struct symsrc *ss) in symsrc__possibly_runtime() argument
1114 return ss->dynsym || ss->opdsec; in symsrc__possibly_runtime()
1117 bool symsrc__has_symtab(struct symsrc *ss) in symsrc__has_symtab() argument
1119 return ss->symtab != NULL; in symsrc__has_symtab()
1122 void symsrc__destroy(struct symsrc *ss) in symsrc__destroy() argument
1124 zfree(&ss->name); in symsrc__destroy()
1125 elf_end(ss->elf); in symsrc__destroy()
1126 close(ss->fd); in symsrc__destroy()
1215 int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, in symsrc__init() argument
1287 ss->is_64_bit = (gelf_getclass(elf) == ELFCLASS64); in symsrc__init()
1289 ss->symtab_idx = 0; in symsrc__init()
1290 ss->symtab = elf_section_by_name(elf, &ehdr, &ss->symshdr, ".symtab", in symsrc__init()
1291 &ss->symtab_idx); in symsrc__init()
1292 if (ss->symshdr.sh_type != SHT_SYMTAB) in symsrc__init()
1293 ss->symtab = NULL; in symsrc__init()
1295 ss->dynsym_idx = 0; in symsrc__init()
1296 ss->dynsym = elf_section_by_name(elf, &ehdr, &ss->dynshdr, ".dynsym", in symsrc__init()
1297 &ss->dynsym_idx); in symsrc__init()
1298 if (ss->dynshdr.sh_type != SHT_DYNSYM) in symsrc__init()
1299 ss->dynsym = NULL; in symsrc__init()
1301 ss->opdidx = 0; in symsrc__init()
1302 ss->opdsec = elf_section_by_name(elf, &ehdr, &ss->opdshdr, ".opd", in symsrc__init()
1303 &ss->opdidx); in symsrc__init()
1304 if (ss->opdshdr.sh_type != SHT_PROGBITS) in symsrc__init()
1305 ss->opdsec = NULL; in symsrc__init()
1308 ss->adjust_symbols = true; in symsrc__init()
1310 ss->adjust_symbols = elf__needs_adjust_symbols(ehdr); in symsrc__init()
1312 ss->name = strdup(name); in symsrc__init()
1313 if (!ss->name) { in symsrc__init()
1318 ss->elf = elf; in symsrc__init()
1319 ss->fd = fd; in symsrc__init()
1320 ss->ehdr = ehdr; in symsrc__init()
1321 ss->type = type; in symsrc__init()