Le Guide du ROOTard pour Linux: ELF
Description: Ce document regroupe l'adaptation d'articles parus dans la Linux-Gazette. Merci à Nat Makarévitch pour ses relectures et Joël Bernier pour la mise en page HTML.
Keywords: Linux, francais, français, france, GNU, FSF, Debian, Redhat, Slackware, Mandrake, kheops, document, documentation, logiciel, libre, informatique, free, software, open, source, sourceware, freeware, soleil, support, assistance, hot line

> Page suivante Page précédente Table des matières ## 14. ELF ## 14.1 Introduction Depuis ses toutes premières versions, Linux supporte les binaires au format a.out. Le support pour les binaires au format ELF a été intégré dans le noyau et une distribution des bibliothèques partagées au format ELF a été faite. Les avantages du format ELF par rapport au format a.out sont nombreux : compatibilité avec les systèmes Unix basés sur SVR4, plus grande facilité de création des bibliothèques partagées, édition de liens dynamiques lors de l'exécution des programmes, support des fonctions `dlopen()`, `dlsym()` et `dlclose()` Les plus récentes versions des distributions sont basées sur le format ELF. Si votre machine est encore au format a.out, il est grand temps de réinstaller votre machine avec une distribution de Linux plus à jour. ## 14.2 Utilisation des utilitaires ELF Les nouvelles versions du compilateur et des utilitaires génèrent des exécutables au format ELF, par défaut. Il est possible de créer des exécutables au format a.out en utilisant l'option `-b i486-linuxaout` lors de l'appel de gcc. Il est désormais assez facile de construire des bibliothèques dynamiques. Les fichiers sources doivent être compilés avec l'option `-fPIC` afin que le code généré puisse s'exécuter à n'importe quelle adresse (les bibliothèques dynamiques sont chargées à des adresses non prévisibles aussi le code doit être indépendant de son adresse physique). L'option `-shared` de gcc permet ensuite de générer une bibliothèque dynamique. Par exemple, pour générer une bibliothèque `libtruc.so.1.0`, on utilisera les commandes suivantes :
>     $ gcc -c -fPIC *.c
>     $ gcc -shared -Wl,-soname,libtruc.so.1 -o libtruc.so.1.0 *.o
> ## 14.3 Sources d'information sur ELF Quelques documents concernant ELF sont disponibles sur `ftp.lip6.fr` dans `/pub/linux/ELF/doc`. Il s'agit de : `ELF.doc.tar.gz` : la spécification du format ELF, `ELF.ps.gz` : un article, écrit par H.J. Lu, décrivant l'implémentation du format ELF dans Linux, `move_to_elf.gz` : une description de la transition entre les formats a.out et ELF. Il est également possible d'en apprendre plus sur ELF par les URL suivants : http://www.intac.com/~cully/elf.html http://www.sjc.ox.ac.uk/users/barlow/linux-gcc.html Page suivante Page précédente Table des matières