.TH GELF_UPDATE_VERSYM 3 2025-09-27 "Libelf" "Libelf Programmer's Manual"

.SH NAME
gelf_update_versym, gelf_update_verdef, gelf_update_verdaux, gelf_update_verneed, gelf_update_vernaux \- modify class\-independent symbol versioning records

.SH SYNOPSIS
.nf
.B #include <gelf.h>

.BI "int gelf_update_versym (Elf_Data *" data ", int " ndx ", GElf_Versym  *" src ");"
.BI "int gelf_update_verdef (Elf_Data *" data ", int " offset ", GElf_Verdef  *" src ");"
.BI "int gelf_update_verdaux(Elf_Data *" data ", int " offset ", GElf_Verdaux *" src ");"
.BI "int gelf_update_verneed(Elf_Data *" data ", int " offset ", GElf_Verneed *" src ");"
.BI "int gelf_update_vernaux(Elf_Data *" data ", int " offset ", GElf_Vernaux *" src ");"
.fi

.SH DESCRIPTION
These functions provide class\-independent modification of GNU ELF
symbol versioning sections. Each function copies the contents of the
caller\-supplied
.I src
into the symbol versioning entry at the specified index or offset within
.IR data .

.TP
.BR gelf_update_versym ()
Write a symbol version index into the
.B SHT_GNU_versym
section associated with
.I data
at index
.IR ndx .

.TP
.BR gelf_update_verdef ()
Write a version definition entry into the
.B SHT_GNU_verdef
section associated with
.I data
at section offset
.IR offset .

.TP
.BR gelf_update_verdaux ()
Write a version definition auxiliary entry into the
.B SHT_GNU_verdef
section associated with
.I data
at section offset
.IR offset .

.TP
.BR gelf_update_verneed ()
Write a version needed entry into the
.B SHT_GNU_verneed
section associated with
.I data
at section offset
.IR offset .

.TP
.BR gelf_update_vernaux ()
Write a version needed auxiliary entry into the
.B SHT_GNU_verneed
section associated with
.I data
at section offset
.IR offset .

.SH PARAMETERS
.TP
.I data
.B Elf_Data
pointer corresponding to the appropriate GNU symbol versioning section.

.TP
.I ndx
(For
.BR gelf_update_versym ()
only.)
Zero\-based index of the entry within
.IR data .

.TP
.I offset
(For
.BR gelf_update_verdef (),
.BR gelf_update_verdaux (),
.BR gelf_update_verneed (),
and
.BR gelf_update_vernaux ().)
Section\-relative byte offset of the entry within
.IR data .

.TP
.I src
Pointer to the caller\-supplied symbol:
.BR GElf_Versym ,
.BR GElf_Verdef ,
.BR GElf_Verdaux ,
.BR GElf_Verneed ,
or
.BR GElf_Vernaux
as appropriate.
This argument must not be NULL.

.SH RETURN VALUE
On success, these functions store the requested entry in
.IR src ,
mark the section corresponding to
.I data
with
.B ELF_F_DIRTY
and return a non-zero value.  On failure, 0 is returned and elf_errno is set.  If
.I data
is NULL, 0 is returned without setting elf_errno.

.SH SEE ALSO
.BR gelf_getverdaux (3),
.BR gelf_getverdef (3),
.BR gelf_getvernaux (3),
.BR gelf_getverneed (3),
.BR gelf_getversym (3),
.BR libelf (3),
.BR elf (5)

.SH ATTRIBUTES
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.na
.nh
.BR gelf_update_versym (),
.br
.BR gelf_update_verdef (),
.br
.BR gelf_update_verdaux (),
.br
.BR gelf_update_verneed (),
.br
.BR gelf_update_vernaux ()
T}	Thread safety	MT-Safe
.TE

.SH REPORTING BUGS
Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.
