Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

elf(3E)

elf_begin(3E)

elf_xlate(3E)





   elf_version(3E)                (ELF Library)                elf_version(3E)


   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(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.  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 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.

   EXAMPLE
         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 */
              }

   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), elf_begin(3E), elf_xlate(3E).






   7/91                                                                 Page 1





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026