5.9 ATMega328p : édition des liens (1/3)
-
Bibliothèques statiques
- Algorithme d’édition des liens :
-
entrée : fichiers objets (variables et fonctions) ;
- entrée : bibliothéques (variables et fonctions) ;
- sortie : un exécutable (chargé par le système) ;
- entités considérées de gauche à droite ;
- 2 ensembles : symboles collectés, symboles indéfinis ;
- si l’entité est un fichier objet F :
-
les symboles exportés par F sont :
-
ajoutés aux symboles collectés ;
- retranchés des symboles indéfinis.
- erreur si un même symbole est collecté deux fois ;
- les symboles importés par F sont :
-
ajoutés aux symboles indéfinis ;
- sauf si présents comme symboles collectés.
- si l’entité est une bibliothèque B :
-
chaque objet de la bibliothèque est considéré ;
- si l’objet exporte un symbole indéfini, on le traite ;
- oubli des objets n’exportant aucun symbole indéfini ;
- si la liste des symboles indéfinis est modifiée ...
- ... la bibliothèque est examinée à nouveau.
- quand il ne reste plus d’entité à analyser :
-
erreur s’il reste des symboles indéfinis ;
- sinon l’exécutable est créé :
-
les sections de même nom sont agrégées ;
- les agrégats de même type sont agrégés ;
- une adresse est affectée à chaque agrégat ;
- les références aux symboles sont calculés.
- Création d’une bibliothéque : commande ar.