elf_version.3e (2010 09)
e
elf_version(3E) elf_version(3E)
NAME
elf_version() - coordinate ELF library and application versions
SYNOPSIS
Command:
cc [flag]... file...
-lelf [library ]...
#include <libelf.h>
unsigned elf_version(unsigned
ver);
DESCRIPTION
As elf(3E) explains, the program, the library, and an object file have independent notions of the "latest"
ELF version. elf_version()
lets a program determine the ELF library’s internal version .Itfurther
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
EV_CURRENT. If the
library’s internal version (the highest version known to the library) is lower than that known by the pro-
gram 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 a 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
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 */
}
WARNINGS
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), elf_begin(3E), elf_xlate(3E).
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1