Provided by: manpages-fr_3.27fr1.4-1_all bug

NOM

       elf  -  Format  des fichiers executables ELF (<< Executable and Linking
       Format >>)

SYNOPSIS

       #include <elf.h>

DESCRIPTION

       Le fichier d'en-tete <elf.h> definit le format  des  fichiers  binaires
       executables   ELF.   Ces   fichiers  peuvent  etre  soit  des  fichiers
       executables normaux, des fichiers objets repositionnables, des fichiers
       core ou des bibliotheques partagees.

       Un  fichier executable utilisant le format de fichier ELF est constitue
       d'un en-tete ELF, suivi d'une table d'en-tete  de  programme  ou  d'une
       table des en-tetes de sections, ou des deux. L'en-tete ELF est toujours
       situe a un deplacement de zero par rapport au  debut  du  fichier.  Les
       deplacements  dans  le fichier des tables d'en-tete de programme et des
       en-tetes de sections sont definis dans l'en-tete ELF. Ces  deux  tables
       decrivent le reste des particularites du fichier.

       Ce  fichier  d'en-tete  decrit,  sous  la  forme  de  structures C, les
       en-tetes mentionnes precedemment et  inclut  egalement  des  structures
       pour  les  sections dynamiques, les sections de repositionnement et les
       tables de symboles.

       Les types suivants sont utilises pour  les  architectures  N-bit  (avec
       N=32,64 ;  ElfN  signifie Elf32 ou Elf64 ; uintN_t signifie uint32_t ou
       uint64_t) :

           ElfN_Addr       adresse (non signee) du programme, uintN_t
           ElfN_Off        deplacement (non signe) dans le fichier, uintN_t
           ElfN_Section    indice (non signe) de section, uint16_t
           ElfN_Versym     informations (non signees) sur les versions
                           des symboles, uint16_t
           Elf_Byte        caractere (char) non signe
           ElfN_Half       uint16_t
           ElfN_Sword      int32_t
           ElfN_Word       uint32_t
           ElfN_Sxword     int64_t
           ElfN_Xword      uint64_t

       (Note : la terminologie *BSD est quelque peu differente. Elf64_Half est
       deux  fois  plus  grand que Elf32_Half et Elf64Quarter est utilise pour
       uint16_t. Afin d'eviter toute confusion, ces types seront remplaces par
       des types plus explicites dans la suite de ce document).

       Toutes  les  structures  de  donnees  definies par le format de fichier
       suivent la taille << naturelle >> et les principes d'alignement  de  la
       classe   correspondante.  Si  necessaire,  les  structures  de  donnees
       contiennent un remplissage  explicite  pour  assurer  l'alignement  sur
       4 octets  des  objets  de  4 octets,  et  pour  forcer  les tailles des
       structures a etre des multiples de 4, etc.

       L'en-tete ELF est  decrit  par  le  type  Elf32_Ehdr  ou  par  le  type
       Elf64_Ehdr :

           #define EI_NIDENT 16

           typedef struct {
               unsigned char e_ident[EI_NIDENT];
               uint16_t      e_type;
               uint16_t      e_machine;
               uint32_t      e_version;
               ElfN_Addr     e_entry;
               ElfN_Off      e_phoff;
               ElfN_Off      e_shoff;
               uint32_t      e_flags;
               uint16_t      e_ehsize;
               uint16_t      e_phentsize;
               uint16_t      e_phnum;
               uint16_t      e_shentsize;
               uint16_t      e_shnum;
               uint16_t      e_shstrndx;
           } ElfN_Ehdr;

       Les champs ont les significations suivantes :

       e_ident     Ce tableau d'octets indique comment interpreter le fichier,
                   independemment du processeur ou  du  reste  du  contenu  du
                   fichier. Dans ce tableau, chacun des elements s'appelle une
                   macro qui commence par le prefixe EI_ et peut contenir  des
                   valeurs commencant par le prefixe ELF. Les macros suivantes
                   sont definies :

                   EI_MAG0     Premier octet du nombre magique. Il  doit  etre
                               rempli par ELFMAG0 (0: 0x7f).

                   EI_MAG1     Deuxieme  octet du nombre magique. Il doit etre
                               rempli par ELFMAG1 (1: << E >>).

                   EI_MAG2     Troisieme octet du nombre magique. Il doit etre
                               rempli par ELFMAG2 (2: << L >>).

                   EI_MAG3     Quatrieme octet du nombre magique. Il doit etre
                               rempli par ELFMAG3 (3: << F >>).

                   EI_CLASS    Le cinquieme octet indique l'architecture  pour
                               ce binaire :

                               ELFCLASSNONE  Cette classe n'est pas valable.
                               ELFCLASS32    Ceci   definit  une  architecture
                                             32 bits. Elle  permet  d'utiliser
                                             des  machines  avec  des  espaces
                                             d'adressage   virtuels   et   des
                                             fichiers   d'une   taille  allant
                                             jusqu'a 4 giga-octets.
                               ELFCLASS64    Ceci  definit  une   architecture
                                             64 bits.

                   EI_DATA     Le sixieme octet indique le codage utilise pour
                               les  donnees  de  ce  fichier  specifiques   au
                               processeur.  Actuellement, les codages suivants
                               sont permis :

                               ELFDATANONE   Format de donnees inconnu.
                               ELFDATA2LSB   Complement    a    deux,    petit
                                             boutiste.
                               ELFDATA2MSB   Complement a deux, gros boutiste.

                   EI_VERSION  Numero de version de la specification du format
                               ELF :
                               EV_NONE       Version non valable.
                               EV_CURRENT    Version actuelle.

                   EI_OSABI    Cet octet identifie le  systeme  d'exploitation
                               et  l'interface  binaire des applications (ABI)
                               auxquels cet objet est  destine.  Certains  des
                               champs  d'autres structures ELF contiennent des
                               valeurs et des drapeaux dont  la  signification
                               depend  de la plate-forme ; l'interpretation de
                               ces champs depend de la valeur  de  cet  octet.
                               Par exemple :

                               ELFOSABI_NONE       Identique a ELFOSABI_SYSV
                               ELFOSABI_SYSV       ABI UNIX System V.
                               ELFOSABI_HPUX       ABI HP-UX.
                               ELFOSABI_NETBSD     ABI NetBSD.
                               ELFOSABI_LINUX      ABI Linux.
                               ELFOSABI_SOLARIS    ABI Solaris.
                               ELFOSABI_IRIX       ABI IRIX.
                               ELFOSABI_FREEBSD    ABI FreeBSD.
                               ELFOSABI_TRU64      ABI UNIX TRU64.
                               ELFOSABI_ARM        ABI de l'architecture ARM.
                               ELFOSABI_STANDALONE ABI autonome (embarque).

                   EI_ABIVERSION
                               Cet  octet  identifie la version de l'interface
                               binaire des applications (ABI) a  laquelle  cet
                               objet   est   destine.   Ce   champ  permet  de
                               differencier des versions  incompatibles  d'une
                               meme  ABI.  L'interpretation  de  ce  numero de
                               version depend de l'ABI indiquee par  le  champ
                               EI_OSABI.  Les  applications  respectant  cette
                               specification utilisent la valeur 0.

                   EI_PAD      Debut de remplissage. Ces octets sont  reserves
                               et  positionnes  a zero. Les programmes qui les
                               lisent ne  doivent  pas  en  tenir  compte.  La
                               valeur de EI_PAD sera modifiee dans le futur si
                               l'on decide de donner une signification  a  des
                               octets actuellement inutilises.

                   EI_NIDENT   Taille du tableau e_ident.

       e_type      Ce  membre  de  la  structure  identifie le type de fichier
                   objet :

                   ET_NONE     Type inconnu.
                   ET_REL      Fichier repositionnable.
                   ET_EXEC     Fichier executable.
                   ET_DYN      Objet partage.
                   ET_CORE     Fichier core.

       e_machine   Ce membre indique l'architecture necessaire  a  un  fichier
                   particulier. Par exemple :

                   EM_NONE     Machine inconnue.
                   EM_M32      AT&T WE 32100.
                   EM_SPARC    Sun Microsystems SPARC.
                   EM_386      Intel 80386.
                   EM_68K      Motorola 68000.
                   EM_88K      Motorola 88000.
                   EM_860      Intel 80860.
                   EM_MIPS     MIPS RS3000 (uniquement gros-boutiste).
                   EM_PARISC   HP/PA.
                   EM_SPARC32PLUS
                               SPARC avec jeu d'instructions etendu.
                   EM_PPC      PowerPC.
                   EM_PPC64    PowerPC 64 bits.
                   EM_S390     IBM S/390
                   EM_ARM      Machines de technologie RISC avancees
                   EM_SH       Renesas SuperH
                   EM_SPARCV9  SPARC v9 64 bits.
                   EM_IA_64    Intel Itanium
                   EM_X86_64   AMD x86-64
                   EM_VAX      DEC Vax.

       e_version   Ce membre indique la version du fichier :

                   EV_NONE     Version non valable.
                   EV_CURRENT  Version actuelle.

       e_entry     Ce membre indique l'adresse virtuelle a laquelle le systeme
                   transfere initialement  le  controle,  demarrant  ainsi  le
                   processus. Si ce fichier ne comporte pas de point d'entree,
                   ce champ contient zero.

       e_phoff     Ce membre contient le deplacement en  octets  de  la  table
                   contenant l'en-tete de programme. Si ce fichier ne comporte
                   pas de table d'en-tete  de  programme,  ce  champ  contient
                   zero.

       e_shoff     Ce membre contient le deplacement en octets de la table des
                   en-tetes de sections. Si ce  fichier  ne  comporte  pas  de
                   table des en-tetes des sections, ce champ contient zero.

       e_flags     Ce  membre contient des drapeaux specifiques au processeur.
                   Le nom de ces drapeaux est de la forme  EF_machine_drapeau.
                   A l'heure actuelle, aucun drapeau n'a ete defini.

       e_ehsize    Ce membre contient la taille de l'en-tete ELF en octets.

       e_phentsize Ce  membre  contient la taille en octets d'une entree de la
                   table d'en-tete de programme ; toutes les entrees  sont  de
                   meme taille.

       e_phnum     Ce   membre  contient  le  nombre  d'entrees  de  la  table
                   d'en-tete de programme. Ainsi, la taille en  octets  de  la
                   table  pourra  etre  obtenue en multipliant e_phentsize par
                   e_phnum.  Si  un  fichier  ne  comporte  pas  d'en-tete  de
                   programme, e_phnum contiendra la valeur zero.

                   Si  le  nombre d'entrees de la table d'en-tete de programme
                   est  superieur  ou  egal  a  PN_XNUM  (0xffff),  ce  membre
                   contient  PN_XNUM (0xffff) et le nombre reel d'entrees dans
                   la table d'en-tete de programme est stocke dans  le  membre
                   sh_info  de  l'entree  initiale de la table des en-tetes de
                   sections. Dans le  cas  contraire,  le  membre  sh_info  de
                   l'entree  initiale  de  la  table  des en-tetes de sections
                   contient la valeur zero.

                   PN_XNUM  Est defini comme 0xffff, le plus grand nombre  que
                            e_phnum  peut  valoir,  qui  specifie ou le nombre
                            actuel d'en-tetes de programme est assigne.

       e_shentsize Ce membre contient la taille  en  octets  d'un  en-tete  de
                   section.  Un  en-tete de section est une entree de la table
                   des en-tetes de sections ; toutes les entrees sont de  meme
                   taille.

       e_shnum     Ce  membre  contient  le  nombre  d'entrees de la table des
                   en-tetes de sections. Ainsi, la  taille  en  octets  de  la
                   table  des  en-tetes  de  sections  pourra  etre obtenue en
                   multipliant e_shentsize  par  e_shnum.  Si  un  fichier  ne
                   comporte  pas  de  table des en-tetes de sections, le champ
                   e_shnum contiendra zero.

                   Si le nombre d'entrees de la table des en-tetes de sections
                   est  superieur  ou  egal  a SHN_LORESERVE (0xff00), e_shnum
                   contient la valeur zero et le nombre reel d'entrees dans la
                   table  des  en-tetes  de sections est stocke dans le membre
                   sh_size de l'entree initiale de la table  des  en-tetes  de
                   sections.  Dans  le  cas  contraire,  le  membre sh_size de
                   l'entree initiale de la  table  des  en-tetes  de  sections
                   contient la valeur zero.

       e_shstrndx  Ce  membre  contient l'indice dans la table des en-tetes de
                   sections de l'entree associee a la  table  des  chaines  de
                   noms  des  sections. Si le fichier ne comporte pas de table
                   des chaines de noms des sections, ce  champ  contiendra  la
                   valeur SHN_UNDEF.

                   Si  l'indice  de la section de la table des chaines de noms
                   des  sections  est  superieur  ou  egal   a   SHN_LORESERVE
                   (0xff00),  ce membre contient la valeur SHN_XINDEX (0xffff)
                   et l'indice reel de la section de la table des  chaines  de
                   noms  des  sections  est  stocke  dans le membre sh_link de
                   l'entree initiale de la table  des  en-tetes  de  sections.
                   Dans  le  cas  contraire,  le  membre  sh_link  de l'entree
                   initiale de la table des en-tetes de sections  contient  la
                   valeur zero.

                   SHN_UNDEF     Cette valeur indique une reference de section
                                 non definie, manquante,  non  pertinente  ou,
                                 d'une    facon    ou    d'une   autre,   sans
                                 signification.  Par   exemple,   un   symbole
                                 << defined >>  se  rapportant a la section de
                                 numero SHN_UNDEF est un symbole indefini.

                   SHN_LORESERVE Cette valeur indique la borne  inferieure  de
                                 la plage des indices reserves.

                   SHN_LOPROC    Les   valeurs   superieures   ou   egales   a
                                 SHN_HIPROC sont reservees a  des  semantiques
                                 specifiques au processeur.

                   SHN_HIPROC    Les   valeurs   inferieures   ou   egales   a
                                 SHN_LOPROC sont reservees a  des  semantiques
                                 specifiques au processeur.

                   SHN_ABS       Cette   valeur  indique  que  les  references
                                 correspondantes sont  des  valeurs  absolues.
                                 Par exemple, les symboles definis par rapport
                                 a  une  section  SHN_ABS  ont   des   valeurs
                                 absolues  et  ne  sont  pas  affectees par le
                                 repositionnement.

                   SHN_COMMON    Les symboles  definis  par  rapport  a  cette
                                 section  sont des symboles communs, comme par
                                 exemple des COMMON Fortran ou  des  variables
                                 externes C non allouees.

                   SHN_HIRESERVE Cette  valeur  indique la borne superieure de
                                 la   plage   des   indices   reserves   entre
                                 SHN_LORESERVE  et SHN_HIRESERVE, inclus ; ces
                                 valeurs ne sont  pas  des  references  de  la
                                 table  des  en-tetes  des sections. Autrement
                                 dit, la table des  en-tetes  de  sections  ne
                                 contient   pas   d'entree  pour  les  indices
                                 reserves.

       La table d'en-tete de programme d'un executable ou d'un  fichier  objet
       partage  est  un tableau de structures, chacune d'entre-elles decrivant
       un segment ou d'autres informations  dont  le  systeme  a  besoin  pour
       preparer l'execution du programme. Un segment de fichier objet contient
       une ou plusieurs sections. L'en-tete de programme n'a de sens que  pour
       les  fichiers  objets  partages ou les fichiers executables. Un fichier
       indique la taille de son propre  en-tete  de  programme  a  l'aide  des
       membres  e_phentsize et e_phnum de l'en-tete ELF. Selon l'architecture,
       l'en-tete de programme ELF est represente par un type Elf32_Phdr ou  un
       type Elf64_Phdr :

           typedef struct {
               uint32_t   p_type;
               Elf32_Off  p_offset;
               Elf32_Addr p_vaddr;
               Elf32_Addr p_paddr;
               uint32_t   p_filesz;
               uint32_t   p_memsz;
               uint32_t   p_flags;
               uint32_t   p_align;
           } Elf32_Phdr;

           typedef struct {
               uint32_t   p_type;
               uint32_t   p_flags;
               Elf64_Off  p_offset;
               Elf64_Addr p_vaddr;
               Elf64_Addr p_paddr;
               uint64_t   p_filesz;
               uint64_t   p_memsz;
               uint64_t   p_align;
           } Elf64_Phdr;

       La  principale  difference  entre  l'en-tete  d'un programme 32 bits et
       l'en-tete d'un  programme  64 bits  repose  sur  emplacement  du  champ
       p_flags au sein de la structure complete.

       p_type      Ce  membre  de la structure Phdr indique le type de segment
                   decrit par cet element de tableau  ou  comment  interpreter
                   ses informations.

                   PT_NULL     Cet  element  du  tableau  est inutilise et les
                               valeurs des autres membres ne sont pas definis.
                               Cela   permet   a  l'en-tete  de  programme  de
                               contenir des entrees qui ne sont pas prises  en
                               compte.

                   PT_LOAD     Cet  element  du  tableau  indique  un  segment
                               chargeable, decrit par p_filesz et p_memsz. Les
                               octets  du  fichier  sont  projetes au debut du
                               segment  memoire.  Si  la  taille  memoire   du
                               segment  p_memsz  est plus grande que la taille
                               du     fichier     p_filesz,     les     octets
                               << supplementaires >>    sont   definis   comme
                               contenant la valeur 0 et places a la  suite  de
                               la  zone  initialisee  du segment. La taille du
                               fichier ne peut etre superieure a la taille  de
                               la   memoire.   Dans   la  table  d'en-tete  de
                               programme, les entrees de segments  chargeables
                               sont  indiquees  par  ordre croissant, classees
                               selon le membre p_vaddr.

                   PT_DYNAMIC  L'element de tableau contient des  informations
                               de liaison dynamique.

                   PT_INTERP   L'element  de tableau contient l'emplacement et
                               la taille du nom  de  chemin,  termine  par  un
                               caractere  << null >>,  utilise  pour  invoquer
                               l'interpreteur. Ce type de segment n'a de  sens
                               que  pour  des fichiers executables (bien qu'il
                               puisse etre present dans des objets  partages).
                               Il  ne peut etre present qu'une seule fois dans
                               un fichier. S'il est present, il doit  preceder
                               chaque entree de segment chargeable.

                   PT_NOTE     L'element  de tableau contient l'emplacement et
                               la taille d'informations auxiliaires.

                   PT_SHLIB    Ce  type  de  segment  est  reserve,  mais   sa
                               semantique  n'est  pas  definie. Les programmes
                               contenant un tel element de tableau ne sont pas
                               conformes a l'interface binaire (ABI).

                   PT_PHDR     L'element   de   tableau,   s'il  est  present,
                               contiendra l'emplacement et  la  taille  de  la
                               table  d'en-tete  de  programme elle-meme, a la
                               fois dans le fichier et dans l'image memoire du
                               programme.  Ce  type  de  segment  ne peut etre
                               present qu'une seule fois dans un fichier.  Qui
                               plus  est,  il  ne  peut  etre  present  que si
                               l'en-tete de programme fait partie  de  l'image
                               memoire du programme. S'il est present, il doit
                               preceder chaque entree de segment chargeable.

                   PT_LOPROC   Les valeurs superieures ou egales  a  PT_HIPROC
                               sont reservees a des semantiques specifiques au
                               processeur.

                   PT_HIPROC   Les valeurs inferieures ou egales  a  PT_LOPROC
                               sont   reservees  a  la  semantique  propre  au
                               processeur. L'extension  GNU  PT_GNU_STACK  qui
                               est   utilisee  par  le  noyau  de  Linux  pour
                               controler l'etat de la  pile  via  l'indicateur
                               positionne dans le membre p_flags member.

       p_offset    Ce  membre  contient  le  deplacement  du  premier octet du
                   segment par rapport au debut du fichier.

       p_vaddr     Ce membre contient l'adresse virtuelle a laquelle se trouve
                   en memoire le premier octet du segment.

       p_paddr     Su  les  systemes  pour  lesquels  l'adresse  physique  est
                   pertinente, ce membre est reserve pour  l'adresse  physique
                   du  segment.  Sous  BSD, ce champ n'est pas utilise et doit
                   avoir la valeur zero.

       p_filesz    Ce membre contient la taille en octets dans l'image fichier
                   de ce segment. Il peut etre egal a zero.

       p_memsz     Ce  membre  contient la taille en octets de l'image memoire
                   de ce segment. Il peut etre egal a zero.

       p_flags     Ce membre contient un masque de bits d'options relatives  a
                   ce segment :

                   PF_X   Segment executable.
                   PF_W   Segment accessible en ecriture.
                   PF_R   Segment accessible en lecture.

                   Un  segment  de texte est souvent affecte des drapeaux PF_X
                   et PF_R. Un segment de  donnees  est  souvent  affecte  des
                   drapeaux PF_X, PF_W et PF_R.

       p_align     Ce  membre  contient  la valeur selon laquelle les segments
                   sont alignes en  memoire  et  dans  le  fichier.  Pour  des
                   segments  de  processus chargeables, les valeurs p_vaddr et
                   p_offset doivent etre congrues,  modulo  la  taille  de  la
                   page.  Des  valeurs  de  zero  ou  de un indiquent qu'aucun
                   alignement n'est necessaire. Sinon, p_align  doit  etre  un
                   nombre  positif,  puissance entiere de deux et p_vaddr doit
                   etre egal a p_offset modulo p_align.

       La table des en-tetes de sections  d'un  fichier  permet  de  retrouver
       toutes  les  sections  du  fichier.  C'est  un  tableau  de  structures
       Elf32_Shdr ou Elf64_Shdr. Le champ e_shoff de l'en-tete ELF  donne  son
       deplacement  en  octets depuis le debut du fichier. e_shnum contient le
       nombre d'entrees que  contient  la  table  des  en-tetes  de  sections.
       e_shentsize contient la taille en octets de chaque entree.

       Un  indice  de  la  table  des en-tetes de sections est un indice de ce
       tableau. Certains de ces indices de table des en-tetes de sections sont
       reserves :  l'entree  initiale  et  toutes  les entrees comprises entre
       SHN_LORESERVE et SHN_HIRESERVE. L'entree initiale est utilisee par  des
       extensions ELF pour e_phnum, e_shnum et e_strndx ; dans les autres cas,
       chaque champ de l'entree initiale est mis a zero. Un fichier  objet  ne
       contient pas de section correspondant a ces indices speciaux :

              SHN_UNDEF     Cette  valeur indique une reference de section non
                            definie,  manquante,  non  pertinente  ou,   d'une
                            maniere ou d'une autre, sans signification.

              SHN_LORESERVE Cette  valeur  indique  la  borne inferieure de la
                            plage des indices reserves.

              SHN_LOPROC    Les valeurs superieures  ou  egales  a  SHN_HIPROC
                            sont  reservees  a  des semantiques specifiques au
                            processeur.

              SHN_HIPROC    Les valeurs inferieures  ou  egales  a  SHN_LOPROC
                            sont  reservees  a  des semantiques specifiques au
                            processeur.

              SHN_ABS       Cette valeur  definit  la  valeur  absolue  de  la
                            reference  correspondante. Par exemple, un symbole
                            defini par rapport a la section numero  SHN_ABS  a
                            une  valeur  absolue  et  n'est pas affecte par un
                            repositionnement.

              SHN_COMMON    Les symboles definis par rapport a  cette  section
                            sont  des  symboles communs, comme par exemple des
                            COMMON Fortran ou des  variables  externes  C  non
                            allouees.

              SHN_HIRESERVE Cette  valeur  indique  la  borne superieure de la
                            plage des indices reserves. Le systeme reserve les
                            indices    compris    entre    SHN_LORESERVE    et
                            SHN_HIRESERVE, inclus. La table  des  en-tetes  de
                            sections ne contient pas d'entree pour les indices
                            reserves.

       L'en-tete de section a la structure suivante :

           typedef struct {
               uint32_t   sh_name;
               uint32_t   sh_type;
               uint32_t   sh_flags;
               Elf32_Addr sh_addr;
               Elf32_Off  sh_offset;
               uint32_t   sh_size;
               uint32_t   sh_link;
               uint32_t   sh_info;
               uint32_t   sh_addralign;
               uint32_t   sh_entsize;
           } Elf32_Shdr;

           typedef struct {
               uint32_t   sh_name;
               uint32_t   sh_type;
               uint64_t   sh_flags;
               Elf64_Addr sh_addr;
               Elf64_Off  sh_offset;
               uint64_t   sh_size;
               uint32_t   sh_link;
               uint32_t   sh_info;
               uint64_t   sh_addralign;
               uint64_t   sh_entsize;
           } Elf64_Shdr;

       Il n'y a pas de reelle difference entre les en-tetes  des  sections  32
       bits et 64 bits.

       sh_name   Ce  membre  indique  le  nom  de la section. Sa valeur est un
                 indice de la table des  chaines  des  en-tetes  de  sections,
                 contenant   l'emplacement   d'une   chaine  terminee  par  un
                 caractere nul.

       sh_type   Ce membre definit le contenu et la semantique de la section.

                 SHT_NULL       Cette  valeur  indique  que  cet  en-tete   de
                                section  est  inactif. Il n'est donc associe a
                                aucune section. Les valeurs des autres  champs
                                de l'en-tete de section ne sont pas definies.

                 SHT_PROGBITS   Cette   section   contient   des  informations
                                definies par le programme, dont le  format  et
                                le sens ne sont determines que par celui-ci.

                 SHT_SYMTAB     Cette  section contient une table de symboles.
                                Typiquement, SHT_SYMTAB contient des  symboles
                                pour  l'edition  de liens, bien qu'elle puisse
                                aussi etre utilisee pour la liaison dynamique.
                                Comme   il  s'agit  d'une  table  de  symboles
                                complete,  elle  peut  contenir  de   nombreux
                                symboles  inutiles  a la liaison dynamique. Un
                                fichier objet peut aussi contenir une  section
                                SHT_DYNSYM.

                 SHT_STRTAB     Cette  section  contient une table de chaines.
                                Un  fichier  objet  peut  contenir   plusieurs
                                sections de ce type.

                 SHT_RELA       Cette   section   contient   des   entrees  de
                                repositionnement    ayant     des     additifs
                                explicites,  par  exemple  les entrees du type
                                Elf32_Rela pour les fichiers  objets  32 bits.
                                Un  objet  peut avoir plusieurs sections de ce
                                type.

                 SHT_HASH       Cette section contient une  table  de  hachage
                                pour  les symboles. Un objet participant a une
                                liaison dynamique doit  en  contenir  une.  Un
                                fichier  objet  ne  peut contenir qu'une seule
                                table de hachage.

                 SHT_DYNAMIC    Cette section  contient  les  informations  de
                                liaison  dynamique.  Un  fichier objet ne peut
                                contenir qu'une seule section dynamique.

                 SHT_NOTE       Cette  section   contient   des   informations
                                servant  a  marquer  le fichier d'une facon ou
                                d'une autre.

                 SHT_NOBITS     Une   section   de   ce   type   ressemble   a
                                SHT_PROGBITS  mais  n'occupe pas d'espace dans
                                le  fichier.  Bien  que   cette   section   ne
                                contienne  aucun  octet,  le  membre sh_offset
                                contient son  deplacement  theorique  dans  le
                                fichier.

                 SHT_REL        Cette   section   contient   des   entrees  de
                                repositionnement sans additif  explicite,  par
                                exemple  du  type  Elf32_Rel pour les fichiers
                                objets de la classe de 32 bits. Un objet  peut
                                contenir       plusieurs      sections      de
                                repositionnement.

                 SHT_SHLIB      Cette section est reservee  et  sa  semantique
                                n'est pas definie.

                 SHT_DYNSYM     Cette  section  contient  un  jeu  minimum  de
                                symboles  de  liaison  dynamique.  Un  fichier
                                objet   peut   aussi   contenir   une  section
                                SHT_SYMTAB.

                 SHT_LOPROC     Cette valeur et les valeurs suivantes  jusqu'a
                                SHT_HIPROC   incluse   sont  reservees  a  des
                                semantiques specifiques au processeur.

                 SHT_HIPROC     Cette valeur et les valeurs precedentes depuis
                                SHT_LOPROC   incluse   sont  reservees  a  des
                                semantiques specifiques au processeur.

                 SHT_LOUSER     Cette valeur indique la borne inferieure de la
                                plage  des  indices  reserves  aux  programmes
                                applicatifs.

                 SHT_HIUSER     Cette valeur indique la borne superieure de la
                                plage  des  indices  reserves  aux  programmes
                                applicatifs.  Les  types  des  sections  entre
                                SHT_LOUSER et SHT_HIUSER peuvent etre utilises
                                par l'application, sans que  cela  n'entre  en
                                conflit  avec  les types de section actuels ou
                                futurs definis par le systeme.

       sh_flags  Les sections contiennent des indicateurs sous forme d'un  bit
                 decrivant   divers  attributs.  Si,  dans  sh_flags,  le  bit
                 correspondant a un indicateur est positionne, l'attribut  est
                 << active >>   pour  cette  section.  Sinon,  l'attribut  est
                 << desactive >> ou  ne  s'applique  pas.  Les  attributs  non
                 definis sont mis a zero.

                 SHF_WRITE      Cette   section  contient  des  donnees  qu'il
                                devrait   etre   possible   d'ecrire    durant
                                l'execution du processus.

                 SHF_ALLOC      Cette  section  est presente en memoire durant
                                l'execution du processus.  Certaines  sections
                                de controle ne sont pas presentes dans l'image
                                memoire d'un fichier objet. Cet  attribut  est
                                desactive pour ces sections.

                 SHF_EXECINSTR  Cette   section   contient   des  instructions
                                machine executables.

                 SHF_MASKPROC   Tous les bits contenus  dans  ce  masque  sont
                                reserves  a  des  semantiques  specifiques  au
                                processeur.

       sh_addr   Si  cette  section  apparait  dans   l'image   memoire   d'un
                 processus, ce membre contient l'adresse a laquelle le premier
                 octet de  la  section  doit  se  trouver.  Sinon,  ce  membre
                 contient zero.

       sh_offset La  valeur  de  ce  membre  indique le deplacement du premier
                 octet de la section par rapport  au  debut  du  fichier.  Une
                 section  de  type  SHT_NOBITS,  n'occupe pas de place dans le
                 fichier  et  son  champ  sh_offset  indique  son  emplacement
                 theorique dans le fichier.

       sh_size   Ce membre contient la taille en octets de la section. A moins
                 que cette section ne soit de  type  SHT_NOBITS,  elle  occupe
                 sh_size   octets   dans  le  fichier.  Une  section  de  type
                 SHT_NOBITS  peut  avoir  une  taille  non  nulle,  mais  elle
                 n'occupera cependant aucune place dans le fichier.

       sh_link   Ce  membre  contient  un  lien vers un indice de la table des
                 en-tetes de sections, son interpretation depend  du  type  de
                 section.

       sh_info   Ce  membre  contient  des  informations  complementaires, son
                 l'interpretation depend du type de section.

       sh_addralign
                 Certaines   sections   ont   des   contraintes   d'alignement
                 d'adresse.  Si une section contient un mot double, le systeme
                 doit s'assurer que la section tout entiere  est  alignee  sur
                 les  mots  doubles.  Autrement dit, la valeur de sh_addr doit
                 etre congrue a zero, modulo la valeur de sh_addralign. Seules
                 zero  ou  des  puissances  entieres  positives  de  deux sont
                 autorises. Une valeur de zero  ou  de  un  indique  qu'aucune
                 contrainte d'alignement ne s'applique a la section.

       sh_entsize
                 Certaines  sections contiennent une table contenant un nombre
                 d'entrees fixe, comme par exemple  les  tables  de  symboles.
                 Pour  de  telles sections, ce champ donne la taille en octets
                 de chaque entree. Ce membre contient zero si cette section ne
                 contient pas une table de ce type.

       Diverses  sections  contiennent  des informations de controle et sur le
       programme :

       .bss      Cette section contient des donnees non initialisees qui  font
                 partie  de  l'image  memoire du programme. Par definition, le
                 systeme initialise ces donnees  avec  des  zeros  lorsque  le
                 programme  demarre. Cette section est du type SHT_NOBITS. Les
                 types de ses attributs sont SHF_ALLOC et SHF_WRITE.

       .comment  Cette  section  contient  des  informations  de   suivi   des
                 versions.  Cette  section  est  du  type  SHT_PROGBITS. Aucun
                 attribut n'est utilise.

       .ctors    Cette section contient des  pointeurs  initialises  vers  des
                 constructeurs  C++.  Cette  section est du type SHT_PROGBITS.
                 Les types de ses attributs sont SHF_ALLOC et SHF_WRITE.

       .data     Cette section contient des donnees faisant partie de  l'image
                 memoire  du  programme.  Elle  est  du type SHT_PROGBITS. Les
                 types de ses attributs sont SHF_ALLOC et SHF_WRITE.

       .data1    Cette section contient des donnees faisant partie de  l'image
                 memoire  du  programme.  Elle  est  du type SHT_PROGBITS. Les
                 types de ses attributs sont SHF_ALLOC et SHF_WRITE.

       .debug    Cette section contient des donnees  de  debogage  symbolique.
                 Son contenu n'est pas precise. Elle est du type SHT_PROGBITS.
                 Aucun type d'attribut n'est utilise.

       .dtors    Cette section contient des  pointeurs  initialises  vers  des
                 destructeurs C++. Elle est du type SHT_PROGBITS. Les types de
                 ses attributs sont SHF_ALLOC et SHF_WRITE.

       .dynamic  Cette section contient des informations de liaison dynamique.
                 Les  attributs de cette section comprennent le bit SHF_ALLOC.
                 Le  positionnement  du  bit  SHF_WRITE  est   specifique   au
                 processeur.  Cette  section  est  du  type  SHT_DYNAMIC. Voir
                 ci-dessus pour les attributs.

       .dynstr   Cette section contient les chaines necessaires a  la  liaison
                 dynamique,  le plus souvent les chaines representant les noms
                 associes aux entrees de la table des symboles. Cette  section
                 est  du  type  SHT_STRTAB.  Le  type  d'attribut  utilise est
                 SHF_ALLOC.

       .dynsym   Cette section contient  la  table  des  symboles  de  liaison
                 dynamique.  Cette  section  est  du  type SHT_DYNSYM. Le type
                 d'attribut utilise est SHF_ALLOC.

       .fini     Cette section contient des instructions executables qui  font
                 partie  du  code  de fin du processus. Lorsqu'un programme se
                 termine normalement, le systeme organise l'execution du  code
                 de   cette  section.  Elle  est  du  type  SHT_PROGBITS.  Les
                 attributs utilises sont SHF_ALLOC et SHF_EXECINSTR.

       .gnu.version
                 Cette section contient la  table  des  symboles  de  version,
                 tableau  d'elements  ElfN_Half.  Cette  section  est  du type
                 SHT_GNU_versym. Le type d'attribut utilise est SHF_ALLOC.

       .gnu.version_d
                 Cette  section  contient  les  definitions  de   version   de
                 symboles, une table de structures  ElfN_Verdef. Cette section
                 est du type SHT_GNU_verdef. Le type  d"attribut  utilise  est
                 SHF_ALLOC.

       .gnu.version_r
                 Cette  section  contient  la  version de symbole des elements
                 necessaires, une  table  de  structures  ElfN_Verneed.  Cette
                 section  est  type SHT_GNU_versym. Le type d'attribut utilise
                 est SHF_ALLOC.

       .got      Cette section contient la  table  globale  des  deplacements.
                 Elle est du type SHT_PROGBITS. Les attributs sont specifiques
                 au processeur.

       .hash     Cette section contient la table de hachage des symboles. Elle
                 est du type SHT_HASH. L'attribut utilise est SHF_ALLOC.

       .init     Cette  section contient des instructions executables qui font
                 partie  du  code  d'initialisation  du  processus.  Lorsqu'un
                 programme demarre, le systeme organise l'execution du code de
                 cette section avant d'appeler le point d'entree principal  du
                 programme.  Cette  section  est  du  type  SHT_PROGBITS.  Les
                 attributs utilises sont SHF_ALLOC et SHF_EXECINSTR.

       .interp   Cette section contient le  chemin  vers  un  interpreteur  de
                 programmes.  Si  le  fichier  comporte  un segment chargeable
                 contenant  cette  section,  les  attributs  de   la   section
                 contiendront  le bit SHF_ALLOC. Sinon, ce bit sera desactive.
                 Cette section est du type SHT_PROGBITS.

       .line     Cette section contient des informations sur  les  numeros  de
                 lignes, qui seront utilisees pour le debogage symbolique. Ces
                 informations etablissent  la  correspondance  entre  le  code
                 source  du  programme et le code machine. Le contenu de cette
                 section  n'est  pas  specifie.  Cette  section  est  du  type
                 SHT_PROGBITS. Aucun attribut n'est utilise.

       .note     Cette  section  contient  des  informations  dans  le  format
                 << Note Section >>. Elle est de type SHT_NOTE. Aucun attribut
                 n'est  utilise. Les executables natifs OpenBSD contiennent en
                 general une section .note.openbsd.ident  leur  permettant  de
                 s'identifier,  afin  que  le  noyau  court-circuite,  lors du
                 chargement  du   fichier,   toutes   les   verifications   de
                 compatibilite de l'emulation binaire ELF.

       .note.GNU-stack
                 Cette  section est utilisee dans les fichiers objets de Linux
                 pour declarer les attributs de la pile. Cette section est  du
                 type    SHT_PROGBITS.    Le   seul   attribut   utilise   est
                 SHF_EXECINSTR. Ceci indique a l'editeur de liens GNU  que  le
                 fichier objet requiere une pile executable.

       .plt      Cette  section  contient une table de liaison des procedures.
                 Elle est du type SHT_PROGBITS. Ses attributs sont specifiques
                 au processeur.

       .relNOM   Cette  section contient des informations de repositionnement,
                 comme decrit ci-dessous. Si ce fichier  comporte  un  segment
                 chargeable  comprenant  du repositionnement, les attributs de
                 la section contiendront le bit SHF_ALLOC. Sinon, ce bit  sera
                 desactive.  Par  convention,  le  << NOM >> est fourni par la
                 section a laquelle le repositionnement s'applique. Ainsi, une
                 section   de   repositionnement  pour  du  .text  s'appellera
                 normalement .rel.text. Cette section est du type SHT_REL.

       .relaNOM  Cette section contient des informations de  repositionnement,
                 comme  decrit  ci-dessous.  Si ce fichier comporte un segment
                 chargeable comprenant du repositionnement, les  attributs  de
                 la  section contiendront le bit SHF_ALLOC. Sinon, ce bit sera
                 desactive. Par convention, le << NOM >>  est  fourni  par  la
                 section a laquelle le repositionnement s'applique. Ainsi, une
                 section  de  repositionnement  pour  du   .text   s'appellera
                 normalement .rela.text. Cette section est du type SHT_RELA.

       .rodata   Cette  section  contient  des  donnees  en lecture seule, qui
                 feront classiquement partie d'un segment  non  accessible  en
                 ecriture dans l'image du processus. Cette section est du type
                 SHT_PROGBITS. L'attribut utilise est SHF_ALLOC.

       .rodata1  Cette section contient des  donnees  en  lecture  seule,  qui
                 feront  classiquement  partie  d'un segment non accessible en
                 ecriture dans l'image du processus. Cette section est du type
                 SHT_PROGBITS. L'attribut utilise est SHF_ALLOC.

       .shstrtab Cette  section  contient  les  noms des sections. Elle est du
                 type SHT_STRTAB. Aucun type d'attribut.

       .strtab   Cette section contient  des  chaines,  le  plus  souvent  ces
                 chaines  representent  les  noms  associes  aux entrees de la
                 table  des  symboles.  Si  ce  fichier  comporte  un  segment
                 chargeable  comprenant  la table des chaines de symboles, les
                 attributs de la section contiendront le bit SHF_ALLOC. Sinon,
                 ce bit sera desactive. Cette section est du type SHT_STRTAB.

       .symtab   Cette  section contient une table des symboles. Si ce fichier
                 comporte  un  segment  chargeable  contenant  la  table   des
                 symboles,  les  attributs  de  la section contiendront le bit
                 SHF_ALLOC. Sinon, ce bit sera desactive. Cette section est du
                 type SHT_SYMTAB.

       .text     Cette  section  contient  le  << texte >>,  autrement dit les
                 instructions executables, d'un programme. Cette  section  est
                 du  type  SHT_PROGBITS. Les attributs utilises sont SHF_ALLOC
                 et SHF_EXECINSTR.

       Les  sections  de  tables  de  chaines  contiennent  des  sequences  de
       caracteres  terminees  par  un  zero  binaire (<< null >>), communement
       appelees chaines. Le fichier objet utilise ces chaines pour representer
       les  noms  des  symboles  et  des  sections.  Le premier octet, qui est
       l'indice zero, est defini comme contenant un null. De meme, le  dernier
       octet de la table de chaines est defini comme contenant un null, ce qui
       assure que toutes les chaines se termineront bien par un null.

       La table des symboles d'un  fichier  objet  contient  les  informations
       permettant   de  localiser  et  de  repositionner  les  definitions  et
       references symboliques d'un programme. Un  indice  dans  une  table  de
       symbole est un indice de ce tableau.

           typedef struct {
               uint32_t      st_name;
               Elf32_Addr    st_value;
               uint32_t      st_size;
               unsigned char st_info;
               unsigned char st_other;
               uint16_t      st_shndx;
           } Elf32_Sym;

           typedef struct {
               uint32_t      st_name;
               unsigned char st_info;
               unsigned char st_other;
               uint16_t      st_shndx;
               Elf64_Addr    st_value;
               uint64_t      st_size;
           } Elf64_Sym;

       Les versions 32 bits et 64 bits comportent les memes membres, seul leur
       ordre differe.

       st_name   Ce membre contient un indice  de  la  table  des  chaines  de
                 symboles   d'un   fichier  objet.  Cette  table  contient  la
                 representation sous la forme de  chaines  de  caracteres  des
                 noms des symboles. Si la valeur de ce champ est non nulle, il
                 represente l'indice de la table des chaines qui donne son nom
                 au symbole. Sinon, le symbole n'a pas de nom.

       st_value  Ce membre donne la valeur associee au symbole.

       st_size   De  nombreux  symboles  sont associes a des tailles. Ce champ
                 contient zero si le symbole n'a pas de taille ou si sa taille
                 est inconnue.

       st_info   Ce  membre  indique  le  type  de symbole et ses attributs de
                 liaison :

                 STT_NOTYPE  Le type de ce symbole n'est pas defini.

                 STT_OBJECT  Ce symbole est associe a un objet de donnees.

                 STT_FUNC    Ce symbole est associe a une fonction ou un autre
                             code executable.

                 STT_SECTION Ce symbole est associe a une section. Les entrees
                             de ce type de  la  table  des  symboles  existent
                             principalement  pour  le  repositionnement et ont
                             normalement des liaisons STB_LOCAL.

                 STT_FILE    Par convention, le nom de ce symbole donne le nom
                             du  fichier  source  associe au fichier objet. Un
                             symbole de ce type a des liaisons STB_LOCAL,  son
                             indice  de  section  est  SHN_ABS,  et,  s'il est
                             present, il precede les autres symboles STB_LOCAL
                             du fichier.

                 STT_LOPROC  Cette  valeur  et  les  valeurs suivantes jusqu'a
                             STT_HIPROC (valeur comprise) sont reservees a des
                             semantiques specifiques au processeur.

                 STT_HIPROC  Cette  valeur  et  les valeurs precedentes depuis
                             STT_LOPROC   incluse   sont   reservees   a   des
                             semantiques specifiques au processeur.

                 STB_LOCAL   Les  symboles  locaux  ne  sont  pas  visibles en
                             dehors   du   fichier   objet   contenant    leur
                             definition.  Des  symboles  locaux  de  meme  nom
                             peuvent  exister  dans  plusieurs  fichiers  sans
                             interferer entre eux.

                 STB_GLOBAL  Les  symboles  globaux  sont visibles de tous les
                             fichiers objets devant etre reunis. La definition
                             par  un fichier d'un symbole global satisfera une
                             reference non definie d'un  autre  fichier  a  ce
                             meme symbole.

                 STB_WEAK    Les  symboles  faibles ressemblent a des symboles
                             globaux, mais leur definition a une priorite plus
                             faible.

                 STB_LOPROC  Cette  valeur  et  les  valeurs suivantes jusqu'a
                             STB_HIPROC (valeur comprise) sont reservees a des
                             semantiques specifiques au processeur.

                 STB_HIPROC  Cette  valeur  et  les valeurs precedentes depuis
                             STB_LOPROC   incluse   sont   reservees   a   des
                             semantiques specifiques au processeur.

                             Il  existe  des  macros permettant de coder et de
                             decoder les champs de type et de liaison :

                             ELF32_ST_BIND(info)    ou     ELF64_ST_BIND(info)
                             extrait une liaison d'une valeur st_info.

                             ELF32_ST_TYPE(info) ou ELF64_ST_TYPE(info)
                             extraire un type d'une valeur st_info.

                             ELF32_ST_INFO(liaison,          type)          ou
                             ELF64_ST_INFO(liaison, type)
                             convertir une liaison et un type  en  une  valeur
                             st_info.

       st_other  Ce membre definit la visibilite du symbole.

                 STV_DEFAULT     Regles par defaut de visibilite du symbole.
                 STV_INTERNAL    Classe cache specifique au processeur.
                 STV_HIDDEN      Le symbole n"est pas disponible dans d'autres
                                 modules.
                 STV_PROTECTED   Non preemptible, non exporte.

                 Il  existe  des  macros  permettant  d'extraire  le  type  de
                 visibilite :

                 ELF32_ST_VISIBILITY(autre)  ou ELF64_ST_VISIBILITY(autre)

       st_shndx  Chaque  entree  de la table des symboles est << definie >> en
                 relation  avec  une  section.  Ce  membre  contient  l'indice
                 correspondant de la table des en-tetes de sections.

       Le repositionnement est le processus consistant a relier des references
       symboliques   a   des    definitions    symboliques.    Les    fichiers
       repositionnables  doivent  contenir  des informations decrivant comment
       modifier le contenu de leurs  sections,  ce  qui  permet  aux  fichiers
       objets  partages  et  executables  de  detenir  les bonnes informations
       concernant   l'image   memoire   d'un   programme.   Les   entrees   de
       repositionnement sont ces donnees.

       Structures   de   repositionnement   pour  lesquelles  un  additif  est
       necessaire :

           typedef struct {
               Elf32_Addr r_offset;
               uint32_t   r_info;
           } Elf32_Rel;

           typedef struct {
               Elf64_Addr r_offset;
               uint64_t   r_info;
           } Elf64_Rel;

       Structures  de  repositionnement  pour  lesquelles   un   additif   est
       necessaire :

           typedef struct {
               Elf32_Addr r_offset;
               uint32_t   r_info;
               int32_t    r_addend;
           } Elf32_Rela;

           typedef struct {
               Elf64_Addr r_offset;
               uint64_t   r_info;
               int64_t    r_addend;
           } Elf64_Rela;

       r_offset    Ce  membre  donne  l'emplacement  ou  appliquer l'action de
                   repositionnement.  Pour  un  fichier  repositionnable,   sa
                   valeur  est  le deplacement en octets depuis le debut de la
                   section  jusqu'a  l'unite  de  stockage  affectee  par   le
                   repositionnement.  Pour  un  fichier executable ou un objet
                   partage, sa valeur est l'adresse virtuelle  de  l'unite  de
                   stockage affectee par le repositionnement.

       r_info      Ce membre donne a la fois l'indice de la table des symboles
                   par rapport auquel on doit effectuer le repositionnement et
                   le  type  de  repositionnement  a  appliquer.  Les types de
                   repositionnement dependent du processeur. Lorsque le  texte
                   mentionne  le  type  de  repositionnement ou l'indice de la
                   table des symboles d'une  entree  de  repositionnement,  il
                   s'agit  du  resultat de l'application de ELF_[32|64]_R_TYPE
                   ou ELF[32|64]_R_SYM, respectivement,  au  champ  r_info  de
                   cette entree.

       r_addend    Ce  membre indique un additif constant pour le calcul de la
                   valeur a stocker dans le champ repositionnable.

       La section .dynamic comporte une serie de  structures  qui  contiennent
       les  informations  relatives  a l'edition de liens dynamique. Le membre
       d_tag controle l'interpretation de d_un.

           typedef struct {
               Elf32_Sword    d_tag;
               union {
                   Elf32_Word d_val;
                   Elf32_Addr d_ptr;
               } d_un;
           } Elf32_Dyn;
           extern Elf32_Dyn _DYNAMIC[];

           typedef struct {
               Elf64_Sxword    d_tag;
               union {
                   Elf64_Xword d_val;
                   Elf64_Addr  d_ptr;
               } d_un;
           } Elf64_Dyn;
           extern Elf64_Dyn _DYNAMIC[];

       d_tag     Ce membre peut prendre l'une des trois valeurs suivantes :

                 DT_NULL     Indique la fin de la section dynamique

                 DT_NEEDED   Decalage dans la table des chaines  vers  le  nom
                             d'une bibliotheque necessaire

                 DT_PLTRELSZ Taille en octets des relocations PLT

                 DT_PLTGOT   Adresse de plt et/ou de GOT

                 DT_HASH     Adresse de la table de hachage des symboles

                 DT_STRTAB   Adresse de la table des chaines

                 DT_SYMTAB   Adresse de la table des symboles

                 DT_RELA     Adresse de la table des relocations Rela

                 DT_RELASZ   Taille, en octets, de la table Rela

                 DT_RELAENT  Taille, en octets, d'une entree de la table Rela

                 DT_STRSZ    Taille, en octets, de la table des chaines

                 DT_SYMENT   Taille,  en  octets, d'une entree de la table des
                             symboles

                 DT_INIT     Adresse de la fonction d'initialisation

                 DT_FINI     Adresse de la fonction de terminaison

                 DT_SONAME   Deplacement dans la table des chaines vers le nom
                             de l'objet partage

                 DT_RPATH    Deplacement  dans  la  table  des chaines pour le
                             chemin de recherche de la bibliotheque (deprecie)

                 DT_SYMBOLIC Demander a l'editeur de liens de  rechercher  les
                             symboles    dans    cet   objet   partage   avant
                             l'executable

                 DT_REL      Adresse de la table des relocations Rel

                 DT_RELSZ    Taille en octets de la table Rel

                 DT_RELENT   Taille en octets d'une entree de la table Rel

                 DT_PLTREL   Type de relocation auquel se refere PLT (Rela  ou
                             Rel)

                 DT_DEBUG    Utilisation non definie pour le debogage

                 DT_TEXTREL  Son   absence  indique  qu'aucune  relocation  ne
                             devrait s'appliquer a un segment  non  accessible
                             en ecriture

                 DT_JMPREL   Adresse  des  entrees  de  relocation, uniquement
                             pour la PLT

                 DT_BIND_NOW Informer l'editeur de liens dynamique de  traiter
                             toutes  les  relocations  avant  de transferer le
                             controle a l'executable

                 DT_RUNPATH  Decalage dans la table des chaines pour le chemin
                             de recherche de la bibliotheque

                 DT_LOPROC   Debut des semantiques specifiques au processeur

                 DT_HIPROC   Fin de la semantique propre au processeur

       d_val     Ce   membre   represente   des  valeurs  entieres  ayant  des
                 interpretations diverses.

       d_ptr     Ce membre represente les adresses  virtuelles  du  programme.
                 Lors  de  l'interpretation  de ces adresses, l'adresse reelle
                 doit etre calculee en se basant sur la  valeur  originale  du
                 fichier  et sur l'adresse de base de la memoire. Les fichiers
                 ne contiennent pas d'entrees de repositionnement  pour  fixer
                 ces adresses.

       _DYNAMIC  Tableau   contenant  toutes  les  structures  de  la  section
                 .dynamic. Ceci est automatiquement rempli  par  l'editeur  de
                 liens.

NOTES

       ELF  est apparu d'abord dans le System V. Le format ELF est un standard
       adopte.

       Les extensions pour e_phnum, e_shnum et e_strndx  sont  des  extensions
       Linux.  Sun,  BSD  et AMD64 les gerent aussi. Pour plus d'informations,
       veuillez lire la section VOIR AUSSI.

VOIR AUSSI

       as(1), gdb(1), ld(1), objdump(1), execve(2), core(5)

       Hewlett-Packard, Format de fichiers Elf-64 (Elf-64 Object File Format).

       Santa Cruz  Operation,  Interface  binaire  des  applications  System V
       (System V Application Binary Interface).

       Unix   System   Laboratories,   "Object  Files",  Format  des  fichiers
       ex'ecutables ELF (Executable and Linking Format)

       Sun Microsystems, Guide de l''editeur  de  liens  et  des  biblioth`eques
       (Linker and Libraries Guide).

       Version  preliminaire  de  l'ABI  AMD64  (System  V  Application Binary
       Interface AMD64 Architecture Processor Supplement).

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Jean-Philippe        Guerard        (2005),        Alain         Portal
       <URL:http://manpagesfr.free.fr/>  (2006).   Jean-Luc Coulon et l'equipe
       francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.