Lines Matching defs:strtab
1270 struct section *null, *symtab, *strtab, *shstrtab;
1336 strtab = elf_create_section(elf, NULL, 0, 0, SHT_STRTAB, 1, 0);
1338 if (!null || !shstrtab || !strtab)
1343 strtab->name = ".strtab";
1347 strtab->sh.sh_name = elf_add_string(elf, shstrtab, strtab->name);
1349 if (null->sh.sh_name == -1 || shstrtab->sh.sh_name == -1 || strtab->sh.sh_name == -1)
1353 elf_hash_add(section_name, &strtab->name_hash, str_hash(strtab->name));
1356 if (elf_add_string(elf, strtab, "") == -1)
1363 symtab->sh.sh_link = strtab->idx;
1385 unsigned int elf_add_string(struct elf *elf, struct section *strtab, const char *str)
1389 if (!strtab)
1390 strtab = find_section_by_name(elf, ".strtab");
1391 if (!strtab) {
1392 ERROR("can't find .strtab section");
1396 if (!strtab->sh.sh_addralign) {
1397 ERROR("'%s': invalid sh_addralign", strtab->name);
1401 offset = ALIGN(sec_size(strtab), strtab->sh.sh_addralign);
1403 if (!elf_add_data(elf, strtab, str, strlen(str) + 1))
1519 /* Add section name to .shstrtab (or .strtab for Clang) */
1522 shstrtab = find_section_by_name(elf, ".strtab");
1524 ERROR("can't find .shstrtab or .strtab");