GELF_UPDATE_SYMSHNDX(3) Libelf Programmer's Manual GELF_UPDATE_SYMSHNDX(3) NAME gelf_update_symshndx - Update class-independent symbol information and ex- tended section index in symbol table SYNOPSIS #include int gelf_update_symshndx (Elf_Data *symdata, Elf_Data *shndxdata, int ndx, GElf_Sym *sym, Elf32_Word xshndx); DESCRIPTION This function updates symdata and shndxdata, at index ndx with the class-independent symbol information from sym and the section index xshndx. symdata should be an Elf_Data pointer for an SHT_SYMTAB or SHT_DYNSYM sec- tion and shndxdata should be an Elf_Data pointer for an SHT_SYMTAB_SHNDX section. The number of symbols in the symbol table can be calculated by dividing the size of symdata by the size of a symbol table entry. The size of symdata can be obtained from symdata->d_size or from the corresponding section header's sh_size. The size of a symbol table entry can be obtained from gelf_fsize() with ELF_T_SYM or from the corresponding section header's sh_entsize. A SHT_SYMTAB_SHNDX section is present in ELF binaries when the number of sections is too large to be represented as an unsigned 16-bit value. In this case the st_shndx field of a GElf_Sym will be set to SHN_XINDEX to in- dicate that the symbol's section index can be found in the SHT_SYMTAB_SHNDX section. shndxdata for this section can be acquired using elf_scnshndx(3), elf_getscn(3), and elf_getdata(3). The number of entries in shndxdata must be equal to the number of entries in symdata. Entry ndx in shndxdata cor- responds to entry ndx in symdata. PARAMETERS symdata Pointer to Elf_Data for a section with type SHT_SYMTAB or SHT_DYN- SYM. shndxdata Pointer to Elf_Data for a section with type SHT_SYMTAB_SHNDX. shndxdata may be NULL. If shndxdata is NULL, then xshndx must be zero. ndx Zero-based index of the symbol table entry and extended section in- dex entry to be updated. sym Pointer to a caller-provided symbol table entry. For ELFCLASS32 bi- naries, st_value and st_size should be able to fit within unsigned 32-bit values. sym must not be NULL. xshndx Updated extended section index entry to be associated with sym. Must be zero if shndxdata is NULL. If sym->st_shndx is not SHN_XIN- DEX then xshndx should be SHN_UNDEF. RETURN VALUE On success, a non-zero value is returned and the entries at index ndx in symdata and shndxdata (if not NULL) are updated with sym and xshndx, re- spectively. The sections associated with symdata and shndxdata are flagged with ELF_F_DIRTY. On failure, zero is returned, elf_errno is set. If sym is NULL, then NULL is returned without setting elf_errno. SEE ALSO elf_getdata(3), elf_getscn(3), elf_scnshndx(3), gelf_fsize(3), gelf_get- symshndx(3), gelf_update_sym(3), libelf(3), elf(5) ATTRIBUTES allbox; lbx lb lb l l l. Interface Attribute Value T{ gelf_update_symshndx() T} Thread safety MT-Safe REPORTING BUGS Report bugs to or https://source- ware.org/bugzilla/. Libelf 2025-12-30 GELF_UPDATE_SYMSHNDX(3)