elf_version(3E) MISC. REFERENCE MANUAL PAGES elf_version(3E)
NAME
elfversion - coordinate ELF library and application ver-
sions
SYNOPSIS
cc [flag ...] file ... -lelf [library ...]
#include <libelf.h>
unsigned elfversion(unsigned ver);
DESCRIPTION
As elf(3E) explains, the program, the library, and an object
file have independent notions of the ``latest'' ELF version.
elfversion lets a program determine the ELF library's
internal version. It further lets the program specify what
memory types it uses by giving its own working version, ver,
to the library. Every program that uses the ELF library
must coordinate versions as described below. The header
file <libelf.h> supplies the version to the program with the
macro EVCURRENT. If the library's internal version (the
highest version known to the library) is lower than that
known by the program itself, the library may lack semantic
knowledge assumed by the program. Accordingly, elfversion
will not accept a working version unknown to the library.
Passing ver equal to EVNONE causes elfversion to return
the library's internal version, without altering the working
version. If ver is a version known to the library,
elfversion returns the previous (or initial) working ver-
sion number. Otherwise, the working version remains
unchanged and elfversion returns EVNONE.
EXAMPLE
The following excerpt from an application program protects
itself from using an older library.
if (elfversion(EVCURRENT) == EVNONE)
{
/* library out of date */
/* recover from error */
}
NOTES
The working version should be the same for all operations on
a particular elf descriptor. Changing the version between
operations on a descriptor will probably not give the
expected results.
SEE ALSO
elf(3E), elfbegin(3E), elfxlate(3E).
Last change: ELF Library 1