Vous êtes ici

LFS : let's really go !

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 repartir

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 setpour vérifier, je retrouve bien plus que ces 3 variables. Pourquoi ? je verrai plus tard...

Binutils

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

GCC

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 !

Linux-Libc-Headers

Rien de particulier à signaler.

Linux kernel headers

Rien de particulier à signaler.

Glibc

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...

Toolchain

Rien de particulier à signaler. Le test de compilation se passe bien.

Tcl

Rien de particulier à signaler. Les tests sont OK.

Expect

Rien de particulier à signaler. Les tests sont OK.