ELF_VERSION(3ELF) ELF Library Functions ELF_VERSION(3ELF)
NAME
elf_version - coordinate ELF library and application versions
SYNOPSIS
cc [
flag ... ]
file ...
-lelf [
library ... ]
#include <libelf.h>
unsigned elf_version(
unsigned ver);
DESCRIPTION
As
elf(3ELF) explains, the program, the library, and an object file
have independent notions of the latest
ELF version.
elf_version() lets a program query 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 <
libelf.h> supplies the version to the program with the
macro
EV_CURRENT. 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,
elf_version() will not accept a working version
unknown to the library.
Passing
ver equal to
EV_NONE causes
elf_version() to return the
library's internal version, without altering the working version. If
ver is a version known to the library,
elf_version() returns the
previous (or initial) working version number. Otherwise, the working
version remains unchanged and
elf_version() returns
EV_NONE.
EXAMPLES
Example 1: A sample display of using the elf_version() function.
The following excerpt from an application program protects itself
from using an older library:
if (elf_version(EV_CURRENT) == EV_NONE) { /* library out of date */ /* recover from error */ }ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
elf(3ELF),
elf32_xlatetof(3ELF),
elf_begin(3ELF),
libelf(3LIB),
attributes(7)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.
July 11, 2001 ELF_VERSION(3ELF)