# [make.conf, CHOST] i386, i686 ?

## ctkr

Bonjour,

J'avais un petit probleme avec ma gentoo : elle refusait de faire un emerge --update system :

Elle me donnait ça : http://rafb.net/paste/results/AEM56749.html

Sur IRC, un gars m'a conseillé de changer la variable CHOST en i386 (elle était en i686)

Et effectivement, maintenant la compilation fonctionne.

Mon processeur est un pentium III 500 MHz, ce qui est donné comme i686 dans les CFLAGS 

(voir http://fr.gentoo-wiki.com/HOWTO_CFLAGS#Pentium_III_.28Intel.29)

Donc je ne comprends pas où était le problème de compilation puisqu'à première vue i686 convenait.

Pouvez-vous éclairer ma lanterne ? 

Le fait que ça soit i386 à la place de i686 ralentit-il la compilation ou la vitesse des programmes compilés ?

Est-ce que je peux remettre la variable CHOST direct en i686, ou faut-il suivre une procédure de migration comme me l'a dit la personne sur IRC ?Last edited by ctkr on Tue Oct 31, 2006 5:58 pm; edited 1 time in total

----------

## Trevoke

Tu as fait une install stage3 sur un ordi x86, je suppose? Et apres tu as change la variable CHOST manuellement?

C'est une manip' qui n'est en general pas recommandee -- il vaut en effet mieux faire une migration si tu insistes vraiment a utiliser i686. C'est pas tellement que ca ralentit le systeme mais ca va utiliser des fonctions du processeur qui sont plus specifiques a ce genre de processeur.

----------

## ctkr

Oui, j'ai installé cette gentoo en Juin dernier en suivant le handbook, en stage3 sur un ordi x86.

Le changement manuel de variable est-il plus recommandé dans un sens que dans l'autre ?

En gros, est ce que c'est plus dangereux de changer manuellement de i386 a i686 ou l'inverse ?

Et aussi, comment peut-on faire cette migration ?

Et enfin, comment expliquez-vous que lorsque CHOST était mis a i686 il y avait des problèmes alors que c'est ce qui convient à mon processeur, et que une fois CHOST mis à i386 il n'y a plus de problèmes ? La procédure de migration en i686 résoudrait-elle le problème que je rencontrais avant (quand la variable CHOST était par défaut en i686) ?

----------

## Trevoke

C'est plutot simple : tout ton systeme (glibc, binutils, gcc, etc) est compile pour i386, donc il n'est pas compatible i686.. Donc quand il essaye de faire du i686, c'est comme si un Nigerien essayait de parler Zoulou avec les oreilles.

En fait, il n'est pas recommande de faire la migration du tout.

Si tu veux vraiment avoir i686, fais une installation stage1.

----------

## ctkr

Donc si je comprends bien quand on fait une installation stage3 on est condamnés à faire du i386 ?

----------

## Trevoke

Bah.. En fait.. Tu peux choisir un stage3 compile pour i686, si tu veux, sur les miroirs.

----------

## ctkr

Ah oui ca me revient je crois bien qu'à l'époque j'avais pris un stage3 pour i386 à l'époque, vu que j'y connaissais rien au x86...   :Confused: 

Installer en stage1 apporte vraiment plus de rapidité au système ?

C'est vraiment très gênant d'être en i386 plutôt qu'en i686 ? (pas envie de réinstaller la gentoo tout de suite...)

----------

## Trevoke

Le stage1 n'apporte pas grand-chose a part une comprehension un peu plus detaillee de comment ca se passe..

Et etre en 386 n'est pas un grand handicap, honnetement.

Genre, c'est dur a distinguer.

----------

## geekounet

Moi j'ai pas tout compris. Tu étais en i386 au départ et tu veux passer au i686 ? ou le contraire, cad rétrograder ?

----------

## ctkr

L'archive stage que j'ai téléchargée lors de l'installation (en Juin dernier) s'appelle très précisément stage3-x86-2006.0.tar.bz2.

J'ai regardé sur les miroirs gentoo, et effectivement on voit des x86, des i586 et des i686

Si j'ai bien tout compris le x86 de l'archive ca veut dire que c'est compatible avec i386, i486, i586, i686... Or de plus si je dis pas de bêtises i386 c'est compatible avec tout ça... Donc il y a de fortes chances que l'archive que j'ai installée soit du 386 (à moins que dans le stage il y ait des options spécifiques à i586, d'autres à i686) J'ai bon ??

Par contre le grand mystère, c'est pourquoi la variable CHOST se serait configurée en i686 automatiquement (à moins qu'un ami me l'ait changée...), alors que l'install s'est faite à partir d'une stage x86. Vous avez une idée ?

Au fait, un grand merci à Trevoke pour ses explications très claires.

PS : pour geekounet : sauf erreur au départ j'étais en i386, mais ma variable CHOST du make.conf était en i686, ce qui faisait foirer les compilations (voir le paste du premier post). J'ai remis la variable CHOST en i386 (à la main), et depuis tout se compile correctement. Par contre, je me demandais s'il était possible de re-migrer en i686 : à première vue, une réinstallation avec stage i686 conviendrait mieux au problème, mais bon réinstaller c'est chiant et d'après Trevoke, on voit pas la différence entre i386 et i686...

----------

## Mickael

On voit pas la différence oui et non. Mais tout de même, les jeux d'instrinctions sont différents entre ces deux familles de proc. Si vraiment tu as un processeur de la famille i686 passe en i686, tu auras l'activation du support sse et mmx.

EDIT : Un pentium III appartient à la famille i686, et non i386--->années 80  :Wink: 

----------

## geekounet

L'inconvenient d'avoir un CHOST i386, c'est qu'on ne peut pas bénificer du NPTL entre autres, c'est i486 minimum. Donc je pense que tu devrais passer au i686.

Pour ça, je pense qu'une méthode pourrai être de faire la méthde du stage 1 :

- changer le make.conf

- lancer le bootstrap (/usr/portage/scripts/bootstrap.sh)

- emerge -e system && emerge -e world.

Ça devrait le faire  :Smile: 

----------

## ctkr

Je veux bien tester ta manipulation.

Mais avant de me lancer dedans, je voulais avoir quelques renseignements :

- en quoi consiste le bootstrap ? Comment on le lance ?

- le "emerge -e system && emerge -e world" il va me prendre beaucoup de temps ? (j'imagine qu'il faut recompiler quelques programmes pour i686 non ?)

- les autres gens vous êtes d'accord avec le bien-fondé de cette manip ?

----------

## geekounet

 *ctkr wrote:*   

> - en quoi consiste le bootstrap ? Comment on le lance ?

 

En lançant /usr/portage/scripts/bootstrap.sh comme j'ai dit avant

 *ctkr wrote:*   

> - le "emerge -e system && emerge -e world" il va me prendre beaucoup de temps ? (j'imagine qu'il faut recompiler quelques programmes pour i686 non ?)

 

Ça recompile tout ton système. Pour le temps que ça va prendre, ça dépend de ce que tu as installé et de ta machine.

----------

## man in the hill

 *ctkr wrote:*   

> - en quoi consiste le bootstrap ? Comment on le lance ?

 

C'est l'installe ("de la toolchain [binutils,gcc, glibc...] ") de ce que tu as besoin pour pouvoir compiler ton système par la suite ...

pour lancer :

```
cd /usr/portage/scripts/

bash  bootstrap.sh
```

 *ctkr wrote:*   

> - le "emerge -e system && emerge -e world" il va me prendre beaucoup de temps ? (j'imagine qu'il faut recompiler quelques programmes pour i686 non ?)

 

Tout dépend de la puissance de ton système (puce, ram) , j'y connais rien en intel  :Razz:  ... En dessous de 2GHz la vie n'est pas facile pour un gentooïste ... De toute façon tu prendras du temps, peut-être même une bonne journée ou plus ...

 *ctkr wrote:*   

> - les autres gens vous êtes d'accord avec le bien-fondé de cette manip ?

 

Moi, je dis que c'est la bonne marche à suivre si tu ne veux pas refaire une installe clean ...

Good luck !

Enjoy !

@ +

----------

## neysx

 *Trevoke wrote:*   

> Le stage1 n'apporte pas grand-chose a part une comprehension un peu plus detaillee de comment ca se passe..

 Taper les commandes /usr/portage/scripts/bootstrap.sh et emerge -e system n'enseignent rien du tout à part peut-être à avoir beaucoup de patience ou à mieux gérer le sentiment de frustration quand ça foire. Toute utilisation de bootstrap.sh est non supportée.

 *Trevoke wrote:*   

> Et etre en 386 n'est pas un grand handicap, honnetement.
> 
> Genre, c'est dur a distinguer.

 Ça va juste empêcher la mise à jour de glibc, mais bon, c'est pas très utilisé non plus  :Smile: 

Pour changer de CHOST: http://www.gentoo.org/doc/en/change-chost.xml

En plus l'exemple est pour i386 => i686

----------

## boozo

'alute  :Wink: 

bon j'ai retrouvé le lien si tu veux le secure & safe official method  :Laughing: 

edit : Ouch ! grilled par un dev en plus... pi'tain d'refresh   :Sad: 

----------

## ctkr

A première vue, pour suivre correctement cette méthode, il faut s'assurer qu'on a le dernier gcc.

Je suis complètement un n00b (comme c'est marqué dans mon profil  :Smile:  ), donc je voulais savoir comment on voyait la version de son gcc.

J'ai juste testé un emerge --pretend gcc : j'obtiens une seule ligne

[ebuild R   ] sys-devel/gcc-4.1.1

Mon gcc est-il à jour ?

----------

## blasserre

en stable, il l'est (version 4.1.1)

----------

## ctkr

Il y a du nouveau sur ma gentoo..

En fait, j'ai lancé un "emerge --update system" hier qui s'est fini avec succès pendant la nuit, puis un "emerge gnome" ce matin vers 8h (tout ça avec le CHOST mis en i386), et cette compilation vient de foirer à l'instant   :Evil or Very Mad: 

en gros, pour retranscrire le message d'erreur, il arrive pas à compiler apmd-3.2.2_p5

libtool: compile: unable to infer tagged configuration

libtool: compile: specify a tag with --tag

make: *** [apmlib.lo] Error 1

Bien entendu je n'ai lancé aucune autre opération majeure en même temps que cette compilation... Quel peut être le problème ??

(un peu frustré d'avoir compilé toute la journée pour rien   :Twisted Evil:  )

----------

## boozo

bon c'est tard alors mode pincette = on

tu peux tenter un fix_libtool_files        ( || un emerge -1 libtool )

mais à bien y réfléchir les erreurs de toolchain comme ça je dis pas bon   :Confused:   surtout attendu ton histoire de changement de chost à la sauvage...

va laisse là ton emerge et refait une toolchain propre avec le bon chost en suivant le guide sinon m'est avis que tes "pépins" risquent de s'agraver sous peu  :Confused: 

btw : tu sais si les temps de compil te gène il ne fallait peut-être pas prendre une distrib sources based...

pour nous ce genre de choses est monnaie courante et on ne regarde pas trop à la dépense quand il s'agit de se chauffer même en ce doux début d'hiver  :Rolling Eyes: 

----------

## ctkr

Re,

J'ai lancé le emerge -1 libtool, et effectivement le emerge apmd fonctionne maintenant.

J'ai donc relancé mon emerge gnome.

En tant que gros n00b, j'en profite pour poser plein de questions idiotes :

- pourquoi le libtool était pas correct ?

- les trucs qui ont déjà été compilés dans la premiere tentative de compilation seront-il recompilés ?

- comment se fait-il qu'en partant d'une stage3 x86, ma variable CHOST du make.conf se soit retrouvée en i686.

  Est-ce que ce changement a forcément été fait à la main ?

- la migration risque-t-elle de durer plus longtemps qu'une réinstallation au propre à partir d'une stage i686 ?

Merci beaucoup à vous tous pour votre aide.

----------

## geekounet

Question un peu à part, pourquoi tu installe apmd ? Elle a 10 ans ta machine ? acpid serai plus adapté pour une machine récente.

----------

## ctkr

Le apmd doit être une dépendance de gnome (peut etre uniquement sous i386), puisqu'il s'est lancé dans le "emerge gnome".

Après, blague à part, mon pc est un pentium III 500MHz qui doit bien avoir 7-8 ans maintenant... Je ne sais pas si on peut encore parler de machine récente   :Very Happy: 

----------

## geekounet

 *ctkr wrote:*   

> Le apmd doit être une dépendance de gnome (peut etre uniquement sous i386), puisqu'il s'est lancé dans le "emerge gnome".
> 
> Après, blague à part, mon pc est un pentium III 500MHz qui doit bien avoir 7-8 ans maintenant... Je ne sais pas si on peut encore parler de machine récente  

 

C'est récent pour moi  :Wink:  Et ça gère l''ACPI normalement. Donc dans ton use, pense à mettre "-apm acpi"  :Smile: 

----------

## boozo

 *ctkr wrote:*   

> En tant que gros n00b, j'en profite pour poser plein de questions idiotes :
> 
> - pourquoi le libtool était pas correct ?
> 
> - les trucs qui ont déjà été compilés dans la premiere tentative de compilation seront-il recompilés ?
> ...

 

bon une fois mais après hein...   :Razz: 

- ton changement de chost inconsidéré et intempestif

- ? n'ai pas compris la question il manque des infos je pense

- je dirais à la main... mais je n'ai pas vérifié ; tu peux toujours détarer ledit stage et regarder

- tout dépend de ce que tu as déja installé... mais attendu que tu en est à l'install du WM je présuppose que rien (données personnelles + progs) n'est encore fait donc, reprendre le stage 3 sera peut-être un poil plus rapide mais tu apprendras plus de choses en suivant le guide   :Wink:   (d'un autre côté vu l'animal refaire une install proprement en suivant la doc apprend plein de choses aussi... dilemme... dans le doute fait les deux   :Twisted Evil:  )

- mais de rien... en espérant que nos contributions t'auront donné l'envie d'une charge de revanche... après ce n'est qu'une question de temps    :Smile: 

----------

