> .. et pas necessairement liee a linux:
>
> quand on compile une nouvelle version de GCC, la derniere
> phase consiste a ce que GCC se recompile lui-meme (bootstraping).
>
> Quelqu'un sait-il pourquoi ?
Tiens, j'avais pas donne ma version ... Je repare cet oubli:
Usuellement la recompilation d'un nouveau compilateur est faite en
trois phases :
1 la premiere utilise le compilateur natif, pas d'optimisation
le strict minimum pour bootstrapper le processus et obtenir
un binaire du nouveau processus, on se moque des perfs on veut
juste que ca compile et que ca tourne.
2 la deuxieme etape consiste a recompiler ce coups ci avec toutes
les optimisations en utilisant le nouveau compilateur (1). le code
genere n;est alors plus dependant que du code source du nouveau
compilo. normalement le code optemu n'est plus dependant de celui
utilise a l'etape 1
Theoriquement le compilateur obtenu a cette etape est "bon pour le
service"
3 En regle generale on fait une troisieme etape qui consiste a recompiler
le ccompilo avec les memes options qu'a l'etape 2 en utilisant celui
genere en 2/ . A la fin on fait une comparaison binaire entre les
resultats de 2 et 3 qui doivent etre strictement identiques (excepte
la date du binaire). C'est une etape de validation importante qui
evite d'installer un binaire pas catholique (exemple la machine
de compil peut etre instable et generer des binaires incorrects,
cet etape permet de detecter les ennuis "subtils").
Daniel