OVH Cloud OVH Cloud

LFS et compilation de GCC 3.3.2

14 réponses
Avatar
lfs
Débutant, j'utilise une Mandrake 9.2, et je suis en train d'essayer de
me monter une LFS sur un petit DD. Je viens de compiler Binutils-2.14 en
static et j'essaye de mettre GCC, mais voilà, le configure s'arrête
comme ça :
checking for struct tms... yes
checking for clock_t... yes
checking for .preinit_array/.init_array/.fini_array support... yes
checking if mkdir takes one argument... no
checking for main in -lunwind... no
*** Configuration i686-pc-linux-gnuoldld not supported
Configure in /mnt/lfs/sources/gcc-build/gcc failed, exiting.
Je ne sais pas si cela vient de libunwind, qui n'a pas l'air d'être une
bibliothèque très répendue ...
Je ne sais pas non plus si cela vient de la version 3.3.2 ...

Vous grand connaisseur et grand compilateur, auriez vous une idée ?
Je vous en remercie d'avance.

4 réponses

1 2
Avatar
lfs
Oui c'est plutôt ça.
Lorsque tu lances la compil de gcc, tu dois avoir
/outils/bin en tête de $PATH
Il vaut mieux que $- ne contienne pas 'h'.
Si tu fais "which ld", tu devrais obtenir /outils/bin/ld.
Et la liste des "supported targets" donnée par
"LC_ALL=C ld --help 2>&1 | grep 'supported targets'"
devrait commencer par elf32-i386.
Si malgré ça, il persiste dans ce linux-gnuoldld, c'est plutôt bizarre.
Pour info, as-tu l'adresse du livre lfs dont tu t'inspires?
J'ai trouvé l'erreur en recommançait la manip, et en relisant le livre

au passage (5.0 sur fr.linuxfromscratch.org). En fait, j'ai zappé le
passage au je devais donner les droits sur mon répertoire comprenant les
outils de compilation lfs à l'user lfs. Donc, j'ai fait un make install
avec root, et voilà ...
Pourrais-tu m'expliquer pourquoi ça a réagi comme ça ?
Plus je m'intéresse à Linux, et plus je me rends compte que c'est
passionnant, alors je me renseigne et demande des explications ...
La solution, c'est bien, mais quand on a compris, c'est encore mieux ;-)

Merci Cem

Avatar
Cem
Le 21-02-2004, lfs a écrit :
J'ai trouvé l'erreur en recommançait la manip, et en relisant le livre
au passage (5.0 sur fr.linuxfromscratch.org). En fait, j'ai zappé le
passage au je devais donner les droits sur mon répertoire comprenant les
outils de compilation lfs à l'user lfs. Donc, j'ai fait un make install
avec root, et voilà ...
Pourrais-tu m'expliquer pourquoi ça a réagi comme ça ?
Je ne comprends pas bien.

Si tu n'a pas mis lfs comme propriétaire sur le répertoire /outils
(/tools dans le livre - mieux vaut s'en tenir strictement à ce qui est
écrit pour éviter les erreurs), le "make install" de binutils, n'a rien
pu installer. T'en es-tu rendu compte et as-tu exécuté "make install"
sous root ? Ou as-tu fait le configure pour gcc alors que binutils
n'avait pas été installé sous /tools ?
Dans les deux cas, je ne vois pas bien ce qui a causé tous tes ennuis.
Si binutils a été installé sous root, il n'y a pas de raison qu'il se
soit mal installé. S'il n'a pas été installé du tout, c'est la commande
ld de la Mandrake qui a été utilisée (ce n'était pas souhaitable mais
bon) et elle n'aurait pas dû conduire à déduire que le système utilisait
un "old ld".
Pour trouver il faudrait se replacer dans le cas initial et mettre des
traces dans le script "config.guess" utilisé par le configure du gcc.

Sinon, je m'étonne un peu. Tu dis te baser sur la version 5.0 française du
livre, mais tu compiles gcc 3.3.2 alors que le livre préconise gcc
3.3.1. Si c'est la première fois que tu installes une LFS, il vaut
mieux t'en tenir *strictement* à la recette, parce que sinon tu as de
bonnes malchances de rencontrer des problèmes.

Plus je m'intéresse à Linux, et plus je me rends compte que c'est
passionnant, alors je me renseigne et demande des explications ...
La solution, c'est bien, mais quand on a compris, c'est encore mieux ;-)


C'est vrai. Et aller vers LFS apprend beaucoup, sans qu'on ait vraiment
l'impression de faire des efforts. Personnellement, après Mandrake,
après Debian, je suis passé à LFS. J'y suis resté fidèle et j'ai banni
les autres distributions de mon disque.

Merci Cem

Pas de quoi, d'autant que je n'ai pas trouvé la cause réelle de ton problème.


Avatar
Fauberteau Frédéric
Je ne comprends pas bien.
Si tu n'a pas mis lfs comme propriétaire sur le répertoire /outils
(/tools dans le livre - mieux vaut s'en tenir strictement à ce qui est
écrit pour éviter les erreurs), le "make install" de binutils, n'a rien
pu installer. T'en es-tu rendu compte et as-tu exécuté "make install"
sous root ? Ou as-tu fait le configure pour gcc alors que binutils
n'avait pas été installé sous /tools ?
Non, j'ai fais le 'make install' sous root, comme pour une install normale.

Dans les deux cas, je ne vois pas bien ce qui a causé tous tes ennuis.
Si binutils a été installé sous root, il n'y a pas de raison qu'il se
soit mal installé. S'il n'a pas été installé du tout, c'est la commande
ld de la Mandrake qui a été utilisée (ce n'était pas souhaitable mais
bon) et elle n'aurait pas dû conduire à déduire que le système utilisait
un "old ld".
Oui, bizard, je pensais que cela venait du fait que root n'a pas

/outils/bin dans sa $PATH, mais bon, dans ce cas, il aurait dû utilisé
les outils de Mandrake ...
Pour trouver il faudrait se replacer dans le cas initial et mettre des
traces dans le script "config.guess" utilisé par le configure du gcc.

Sinon, je m'étonne un peu. Tu dis te baser sur la version 5.0 française du
livre, mais tu compiles gcc 3.3.2 alors que le livre préconise gcc
3.3.1. Si c'est la première fois que tu installes une LFS, il vaut
mieux t'en tenir *strictement* à la recette, parce que sinon tu as de
bonnes malchances de rencontrer des problèmes.
Et bien je crois que je vais m'en tenir au 3.3.1 ;-)

C'est vrai. Et aller vers LFS apprend beaucoup, sans qu'on ait vraiment
l'impression de faire des efforts. Personnellement, après Mandrake,
après Debian, je suis passé à LFS. J'y suis resté fidèle et j'ai banni
les autres distributions de mon disque.

Pas de quoi, d'autant que je n'ai pas trouvé la cause réelle de ton problème.
Les explications, mêmes si elles ne résoudent pas le problème sont la

meilleur façon d'apprendre et de comprendre ...

Avatar
Cem
Le 21-02-2004, Pascal H. a écrit :
Quand tu auras achevé l'installation de lfs tu pourras passer à Beyond
LFS en utilisant la version CVS si tu tiens à avoir les dernières
versions des softs. Mais il vaut mieux installer une version stable de
lfs. Personnellement j'ai installé la version 4.0 de lfs et ensuite la
version CVS de blfs. Pour gcc j'en suis toujours à la version 3.2.1 et
j'utilise la version 2.95.3 pour compiler noyau et modules.

BLFS est en effet la suite naturelle. On y trouve la méthode pour

installer tout ce qui manque pour faire de la LFS une véritable
distribution. Mieux vaut en effet utiliser la version CVS de BLFS pour
installer les ultimes versions de logiciels.
Après on en sait assez pour installer n'importe quoi.
Pour LFS proprement dit, la version 5.0 est stable et elle est
préférable à la 4.x.
La méthode de construction utilisée jusqu'aux versions 4 avait été mise
en cause par Alan Cox himself, suite à des problèmes remontés par des
LFSien sur la mailing-list du kernel.
Quelques personnes travaillant sur le projet LFS ont reconnu le
bien-fondé de ces critiques et ont lancé le projet pure-lfs qui a
service de base à la version 5.
Voir http://www.linuxfromscratch.org/~greg/pure_lfs.txt
Un des inconvénients de LFS, c'est que c'est un système difficile à
upgrader. Pour changer le coeur du système (version de gcc, de binutils
ou de glibc), il n'y a pas de miracle. Il faut repartir de zéro et tout
est à refaire.
Ma dernière installation date de mai 2003. Je m'étais basé sur la
version CVS de l'époque (j'avais déjà fait au moins deux installations
de LFS stables par le passé). J'en suis à gcc 3.2.3, glibc 2.3.2 et
binutils 2.13.2. Ce n'est pas encore trop vieux. Je pense que
j'attendrais le passage au noyau 2.6 pour la prochaine reconstruction.
Dommage qu'il n'y ait pas de newsgroup d'entraide francophone sur la LFS
(le seul qui existe à ma connaissance est utilisé pour la traduction du
livre).
Les newsgroups anglophones, j'arriverais encore à peu près à comprendre
de quoi ils causent, mais je n'oserais jamais m'y exprimer vu la
pauvreté de mon anglais.

1 2