Lines Matching refs:strtab
1190 struct section *null, *symtab, *strtab, *shstrtab; in elf_create_file() local
1256 strtab = elf_create_section(elf, NULL, 0, 0, SHT_STRTAB, 1, 0); in elf_create_file()
1258 if (!null || !shstrtab || !strtab) in elf_create_file()
1263 strtab->name = ".strtab"; in elf_create_file()
1267 strtab->sh.sh_name = elf_add_string(elf, shstrtab, strtab->name); in elf_create_file()
1269 if (null->sh.sh_name == -1 || shstrtab->sh.sh_name == -1 || strtab->sh.sh_name == -1) in elf_create_file()
1273 elf_hash_add(section_name, &strtab->name_hash, str_hash(strtab->name)); in elf_create_file()
1276 if (elf_add_string(elf, strtab, "") == -1) in elf_create_file()
1283 symtab->sh.sh_link = strtab->idx; in elf_create_file()
1305 unsigned int elf_add_string(struct elf *elf, struct section *strtab, const char *str) in elf_add_string() argument
1309 if (!strtab) in elf_add_string()
1310 strtab = find_section_by_name(elf, ".strtab"); in elf_add_string()
1311 if (!strtab) { in elf_add_string()
1316 if (!strtab->sh.sh_addralign) { in elf_add_string()
1317 ERROR("'%s': invalid sh_addralign", strtab->name); in elf_add_string()
1321 offset = ALIGN(strtab->sh.sh_size, strtab->sh.sh_addralign); in elf_add_string()
1323 if (!elf_add_data(elf, strtab, str, strlen(str) + 1)) in elf_add_string()