Une petite précision, avant de continuer : mon but n'est pas de paraphraser (ni de traduire en français) la doc de Gerard Beekmans sur LFS. D'autant plus qu'elle est très bien faite !
Je veux seulement essayer de décrire les étapes qui, je l'espère, m'amèneront à avoir un Linux d'abord bien adapté à mon PC mini-ITX, et ensuite que je maîtrise bien.
Donc, à nouveau, je renvoie le lecteur vers la doc d'origine.
Je ne noterai dans ce qui suit que les éléments importants : grandes étapes, variations éventuelles par rapport à la doc...
Et maintenant, allons-y !
Pour se remettre dans la configuration nécessaire pour continuer (puisque depuis le dernier article, j'ai arrêté mon PC) :
su // passer root export LFS=/mnt/lfs mount /dev/hda3 $LFS su - lfs // passer utilisateur lfs cd $LFS/sources
D'après la doc, le contenu de .bash_profile
permet de démarrer avec un environnement vide, à part 3 variables. Mais quand j'utilise la commande set
pour vérifier, je retrouve bien plus que ces 3 variables. Pourquoi ? je verrai plus tard...
La doc demande de créer un répertoire binutils-build
. Ce n'est peut-être pas très évident (en tout cas, pour moi, ça ne l'était pas, à la première lecture), mais il faut le créer dans le répertoire sources
.
En fait, c'est plus clair si l'on relit mieux la doc (RTFM :-) : après avoir décompressé chaque paquetage, il faut se positionner dans le sous-répertoire créé, et ensuite passer la ou les commandes indiquées...
Depuis le répertoire sources
, la commande
tar xvjf binutils-2.15.91.0.2.tar.bz2
permet de décompresser et restaurer les sources Binutils.
Pour déterminer la valeur du SBU (Static Build Unit), je n'ai pas réussi à utiliser la méthode décrite dans la doc. J'ai plutôt créé un fichier, nommé build
dans le répertoire binutils-build
, contenant les 4 commandes à exécuter. Je l'ai rendu exécutable (chmod u+x build
). Puis je l'ai lancé, par la commande
time ./build
Le résultat obtenu est :
627.16 user 142.26 system 14:12.70 elapsed 90% CPU
Problème lors du make
: les infos suivantes sont affichées :
/tools/i686-pc-linux-gnu/bin/ld: cannot find -lc collect2: ld returned 1 exit status
Un petit tour dans la FAQ de LFS, et l'origine du problème est trouvée : je n'ai pas les librairies C statiques. Un autre petit tour sur rpmfind.net pour récupérer glibc-static-devel-2.3.3-21mdk.i586.rpm
, et hop !
Rien de particulier à signaler.
Rien de particulier à signaler.
Six erreurs lors des tests, pour la partie math:
make[2]: *** [/mnt/lfs/sources/glibc-build/math/test-float.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/math' make[1]: *** [math/tests] Error 2
make[2]: *** [/mnt/lfs/sources/glibc-build/math/test-double.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/math' make[1]: *** [math/tests] Error 2
make[2]: *** [/mnt/lfs/sources/glibc-build/math/test-ldouble.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/math' make[1]: *** [math/tests] Error 2
make[2]: *** [/mnt/lfs/sources/glibc-build/math/test-ildoubl.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/math' make[1]: *** [math/tests] Error 2
make[2]: *** [/mnt/lfs/sources/glibc-build/math/test-ifloat.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/math' make[1]: *** [math/tests] Error 2
make[2]: *** [/mnt/lfs/sources/glibc-build/math/test-idouble.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/math' make[1]: *** [math/tests] Error 2
Et deux autres erreurs :
make[2]: *** [/mnt/lfs/sources/glibc-build/misc/tst-tsearch.out] Error 132 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/misc' make[1]: *** [misc/tests] Error 2
Didn't expect signal from child: got `Illegal instruction' make[2]: *** [/mnt/lfs/sources/glibc-build/elf/tst-align.out] Error 1 make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.4-20040701/elf' make[1]: *** [elf/tests] Error 2
La doc dit de ne pas s'affoler, à ce niveau. Nous verrons bien ce qui se passe, lors de la construction définitive de glibc...
Rien de particulier à signaler. Le test de compilation se passe bien.
Rien de particulier à signaler. Les tests sont OK.
Rien de particulier à signaler. Les tests sont OK.