STT_FUNC
if (ELF_ST_TYPE(sym->st_info) == STT_FUNC)
if (ELF32_ST_TYPE(sym->st_info) == STT_FUNC &&
SYM_TYPE(STT_FUNC),
#define SYM_T_FUNC STT_FUNC
s->is_func = (ELF_ST_TYPE(sym->st_info) == STT_FUNC);
if (is_arm && ELF_ST_TYPE(sym->st_info) == STT_FUNC)
&& ELF_ST_TYPE(symp->st_info) == STT_FUNC)
ret = elf_sym_iter_new(&iter, elf, binary_path, sh_types[i], STT_FUNC);
err = elf_sym_iter_new(&iter, elf_fd.elf, binary_path, sh_types[i], STT_FUNC);
err = elf_resolve_syms_offsets(path, cnt, syms, &resolved_offsets, STT_FUNC);
return (bind == STB_GLOBAL || bind == STB_WEAK) && type == STT_FUNC;
if (ELF64_ST_TYPE(sym->st_info) != STT_FUNC)
return (type == 't' || type == 'w') ? STT_FUNC : STT_OBJECT;
if (sym && sym->type == STT_FUNC) {
case STT_FUNC:
sym->type == STT_FUNC) && !sym->nocfi) {
sym->type = STT_FUNC;
if (sym && sym->type != STT_FUNC)
return sym->type == STT_FUNC;
if (reloc->sym->type == STT_FUNC && !code_sym) {
if (vmlinux && sym->type == STT_FUNC) {
case STT_FUNC: return "FUNC";
STB_GLOBAL, STT_FUNC, fsym->name);
if (sym->type != STT_FUNC && sym->type != STT_GNU_IFUNC)
__func__, __LINE__, sym->name, sym->start, addr, sym->end, sym->type == STT_FUNC);
.st_info = ELF_ST_BIND(STB_LOCAL) | ELF_ST_TYPE(STT_FUNC),
#define SYM_T_FUNC STT_FUNC
symbol = symbol__new(start, len, bfd2elf_binding(sym), STT_FUNC,
if (sym->type != STT_FUNC)
return (elf_sym__type(sym) == STT_FUNC ||
(GELF_ST_TYPE(sym.st_info) == STT_FUNC) &&
sym = symbol__new(shdr.sh_offset + i, shdr.sh_entsize, STB_GLOBAL, STT_FUNC, buf);
plt_sym = symbol__new(shdr_plt.sh_offset, plt_header_size, STB_GLOBAL, STT_FUNC, ".plt");
f = symbol__new(plt_offset, plt_entry_size, STB_GLOBAL, STT_FUNC, sympltname);
sym = symbol__new(start, size, STB_GLOBAL, STT_FUNC, line + len);
(unsigned long **) &offsets, STT_FUNC);
&tmp_offsets, STT_FUNC);
err = elf_resolve_syms_offsets(path, 3, syms, (unsigned long **) &offsets, STT_FUNC);
if (ELF64_ST_TYPE(sym->st_info) != STT_FUNC)