Page précédente Page suivante 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 :

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 :

Il est également possible d'en apprendre plus sur ELF par les URL suivants :


Page précédente Page suivante Table des matières