Lines Matching refs:symtab
542 struct section *symtab, *symtab_shndx, *sec; in read_symbols() local
549 symtab = find_section_by_name(elf, ".symtab"); in read_symbols()
550 if (symtab) { in read_symbols()
555 symbols_nr = sec_num_entries(symtab); in read_symbols()
583 if (!gelf_getsymshndx(symtab->data, shndx_data, i, &sym->sym, in read_symbols()
589 sym->name = elf_strptr(elf->elf, symtab->sh.sh_link, in read_symbols()
685 struct section *symtab, *sec; in mark_group_syms() local
688 symtab = find_section_by_name(elf, ".symtab"); in mark_group_syms()
689 if (!symtab) { in mark_group_syms()
696 sec->sh.sh_link == symtab->idx) { in mark_group_syms()
732 static int elf_update_symbol(struct elf *elf, struct section *symtab, in elf_update_symbol() argument
737 Elf64_Xword entsize = symtab->sh.sh_entsize; in elf_update_symbol()
745 s = elf_getscn(elf->elf, symtab->idx); in elf_update_symbol()
797 mark_sec_changed(elf, symtab, true); in elf_update_symbol()
798 symtab->truncate = true; in elf_update_symbol()
866 struct section *symtab, *symtab_shndx; in elf_create_symbol() local
902 symtab = find_section_by_name(elf, ".symtab"); in elf_create_symbol()
903 if (!symtab) { in elf_create_symbol()
910 new_idx = sec_num_entries(symtab); in elf_create_symbol()
919 first_non_local = symtab->sh.sh_info; in elf_create_symbol()
927 if (elf_update_symbol(elf, symtab, symtab_shndx, old)) { in elf_create_symbol()
946 symtab->sh.sh_info += 1; in elf_create_symbol()
950 if (sym->idx && elf_update_symbol(elf, symtab, symtab_shndx, sym)) in elf_create_symbol()
953 symtab->sh.sh_size += symtab->sh.sh_entsize; in elf_create_symbol()
954 mark_sec_changed(elf, symtab, true); in elf_create_symbol()
1191 struct section *null, *symtab, *strtab, *shstrtab; in elf_create_file() local
1296 symtab = elf_create_section(elf, ".symtab", 0x18, 0x18, SHT_SYMTAB, 0x8, 0); in elf_create_file()
1297 if (!symtab) in elf_create_file()
1300 symtab->sh.sh_link = strtab->idx; in elf_create_file()
1301 symtab->sh.sh_info = 1; in elf_create_file()