elf_version(S)
elf_version --
coordinate ELF library and application versions
Syntax
cc [flag . . . ] file . . . -lelf [library] . . .
#include <libelf.h>
unsigned elf_version(unsigned ver);
Description
As
elf(S)
explains, the program, the library,
and an object file have independent notions
of the ``latest''
ELF
version.
elf_version(S)
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
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
makes
elf_version( )
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.
Diagnostics
Error conditions are identified through the routine
elf_error(S).
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 */
}
Warning
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(S),
elf_begin(S),
elf_xlate(S)
Standards conformance
elf_version(S)
is not part of any currently supported standard;
it was developed by UNIX System Laboratories, Inc.
and is maintained by The SCO Group.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003