Le mer 07/01/2004 à 11:27, laurent.dieudonne@??? a écrit :
> Salut!
>
> Question (vraiment) idiote et un peu HS:
>
> Dans un mail precedent (mais je l'ai efface betement), que signifie les
> section VMA et LMA? C'est pour ma culture generale, et puis occasionnellement
> pour comprendre un peu plus...
> J'ai essaye de deviner : Virtual Memory Address (??), mais pour LMA,
> je trouve rien pour le 'L'!
VMA c'est virtual memory address, c'est l'adresse finale à laquelle le
segment doit être chargé.
Si je me rappelle correctement (mais bon, apparemment ma mémoire est pas
au top), le 'L' c'est pour "LOAD", c'est l'adresse pour laquelle est
compilé un bout de code, ça sert à calculer les relocations quand tu
veux le charger à une adresse différente (dans ce cas il faut recalculer
toutes les références à une adresse absolue dans ce segment).
Mais là, dans ce contexte précis, je sais pas trop. Vu que les
bibliothèques partagées sont en PIC (position independant code, donc pas
de relocations) pour pouvoir être mappées à des VMA différentes en même
temps et que les exécutables sont compilés à une adresse fixe (le fameux
0x8048000), les relocs ne sont pas utilisées et donc VMA = LMA.
Xav