# [Débutant] Quelques question avant de me lancer !!!

## FoX.44

Bonjour à tous !

Après 1 an de passer sur une Debian, je me suis dit que j'allais passer a autre chose ! C'est pourquoi, je me suis dit pourquoi ne pas essayer la gentoo dont j'entend souvent des compliment ! Mais avant, de me lancer j'ai un tas de petites questions ! Je ne me lance pas non plus a l'arrache, parce qu'avant j'ai lu le manuel d'installation pour voir les evntuelle truc ou je bloquerait !

Je vous donne ma config qui pourra ètre peut ètre utile pour certaine question :

P4 2,4 GHZ 

512 Mo de RAM

Geforce4 MX440

1°)  Quelle option de compilation je doit utiliser sachant que je pense que pour une première fois je vais partir du stage3 donc, que je ne veu pas poule moment une optimisation optimum?

2°) Est on obliger de remplir la variable USE dés le départ ? Si oui, quel sont les paramètre important ?

3°) Saxhant que je partirai d'un stage3, combien de temps ( vraiment en gros) me faudra t'il pour avoir un systeme utilisable avec xorg et Gnome ?

Bon, voila, sa me fera un bon point de départ ! Mais j'aurai surement un tas d'autre question pour la suite !

Merci d'avance pour vos réponses et a très bientot !

----------

## yoyo

Bienvenue à toi,

alors dans l'ordre :

1 / Si tu utilises le stage3 pour P4 (et je ne vois pas pourquoi tu ne l'utiliserais pas   :Wink:  ) les optimisations de base sont normalement déja dans le "/etc/make.conf" que tu vas "détarrer".

Sinon, j'ai une config assez proche de la tienne (P4@2.66 GHz + 500Mo de ram + Geforce4 MX440) et mes CFLAGS sont les suivants (les CXXFLAGS sont identiques et j'ai inclus le CHOST que tu devras ajuster le cas échéant) : 

```
CFLAGS="-march=pentium4 -O2 -Os -pipe -mfpmath=sse,387 -msse -msse2 -mmmx -fomit-frame-pointer -fforce-addr -momit-leaf-frame-pointer -ffast-math"

CHOST="i686-pc-linux-gnu"
```

Les doublons (-O2 -Os, -march=pentium4 -msse -msse2 -mmmx) c'est pour le cas où l'ebuild filtre les CFLAGS (pb de compil avec des cflags trop agressifs) : cela permet de conserver toute de même une certaine optimisation.

Pour plus d'info, vas voir là : http://leander256.free.fr/gentoo/gcc-flags-sommaire.html;

2 / Perso, je remplis la variable USE au fur et à mesure des nouveau flags. Je fais toujours un "emerge -vp ..." pour voir les USEflags et pour ceux que je ne connais pas ou dont je ne suis pas sûr je vais regarder leur description dans "/usr/portage/profile/use*"

3 / sauf fausse manip (et pb de config) compte une demi-journée (au pif car en général je lance les compils la nuits : en gros lances les emerge, vas te coucher ou boire un pot avec des potes et quand tu reviens tu n'as plus que les config à faire  :Rolling Eyes:    ) ...

Enjoy !

----------

## FoX.44

ok, merci pour les infos !

Donc, j'ai regarder ce que contenait le fichier make.conf du stage3 pour p4 et voila : 

```
CFLAGS="-O2 -march=pentium4"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"
```

J'ai vu ds le manuel, qu'apparemment, c'était pas mal d'utilser l'option "-pipe", donc si je laisse mon make.conf ainsi : 

```
CFLAGS="-O2 -march=pentium4 -pipe"

CHOST="i686-pc-linux-gnu" 

CXXFLAGS="${CFLAGS}"
```

tout devrait se dérouler sans embuche normalement (pas d'erruer de compilation a cause d'option trop agressive) ?

Merci d'avance !

----------

## yoyo

Non, cela me semble très "sage" ...  :Wink: 

Tu peux peut-être ajouter "-fomit-frame-pointer" qui est il me semble assez intéressant (mais bon, je ne suis pas un GuRu de gcc).

Pour info, je n'ai jamais eu aucun problème de compilation avec mes cflags.

----------

## Dais

-pipe et -fomit-frame-pointer sont habituels comme rajouts.

En reprenant les cflags de yoyo, tu peux avoir quelque chose de sage avec ça:

```
CFLAGS="-march=pentium4 -O2 -Os -pipe -msse -msse2 -mmmx -fomit-frame-pointer"
```

Le reste, je ne connais pas, donc j'ai préféré enlever. Si yoyo peut expliquer à quoi ils servent, ça t'aidera à voir si c'est "sage" ou non  :Wink: 

----------

## kwenspc

On peut quand même forcer la dose sans rien risquer (à peine). 

voici mes flags :

```

CFLAGS="-O3 -mtune=pentium4 -march=pentium4 -pipe -fomit-frame-pointer -fprefetch-loop-arrays -ffast-math -fforce-addr"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"

LDFLAGS="-Wl,-O1 -Wl,--sort-common -s"

MAKEOPTS="-j2"

```

Même OpenOffice a pu être compilé avec ça.

----------

## Ey

 *kwenspc wrote:*   

> Même OpenOffice a pu être compilé avec ça.

 

Oui mais bon c'est pas pour autant des cflags surs. Surtout le fastmath.

----------

## FoX.44

Ok, merci pour toute les infos !

De toute façon, si j'ai un problème, on saura quie va se faire engueuler !!! :Smile: 

Je vous tien au courrant et j'aurai surement besoin de vous pour la suite !!

Bye et Merci !

----------

## Dais

Ouais, kwenspc c'est une tête brûlée  :Razz: 

En plus, compiler OpenOffice .. faut être fou pour faire ça  :Razz: 

----------

## kwenspc

 *Dais wrote:*   

> Ouais, kwenspc c'est une tête brûlée 
> 
> En plus, compiler OpenOffice .. faut être fou pour faire ça 

 

bah...faut bien que mon stage serve à faire quelque chose non?   :Razz: 

----------

## Enlight

 *Ey wrote:*   

>  *kwenspc wrote:*   Même OpenOffice a pu être compilé avec ça. 
> 
> Oui mais bon c'est pas pour autant des cflags surs. Surtout le fastmath.

 

Le truc c'est que ffast-math va pas empecher une compile, c'est pas ça le souci, le problème c'est que les calculs ne suivront pas les standars IEEE (genre a/b/c va être changé en a/(b*c)) et si jamais t'as quelque chose qui nécessite une certaine précision, ben le résultat sera pas celui escompté.

Sinon mcpu à dégager IMHO car taille_du_binaire++ et du coup c'est encore plus lent. Si march est filtré c'est vraiment qu'y a une raison.

Plus flippant, le ftracer de yoyo est réputé fournir des binaires bien cassés.

sinon faut savoir que si tu mets -O2 -Os c'est -Os qui sera pris en compte et -O2 sera pris en compte uniquement si -Os est filtré.

Enfin Sur x86 à moins de vouloir faire du débugage, tu peux envisager -fomit-frame-pointer (d'ailleurs que peut faire as d'un momit-leaf-frame-pointer si gcc a déjà fait -fomit-frame-pointer??? si qqn a la réponse...)

----------

## guilc

Hum, pour ceux qui ont "-msse -msse2 -mmmx" dans leurs cflags : c'est PAS DU TOUT conseillé.

Vous vous rappelez pas de certaines version de gcc avec sse2 buggué ? et c'était désactivé directement dans les fichiers specs, SAUF, si le flag -msse2 était présent, ce qui fait que les binaires étaient completement foirés chez les egns avec ce cflag... Tres mauvaise idée de faire ça...

----------

## yoyo

Bien bien bien ...

Vous n'avez pas honte de détourner le post d'un nouveau venu sur Gento ??

Bon d'accord, le sujet "cflags" était propice à troll ...

Pour ce qui est de mes cflags, je n'ai eu aucun problème (à la compil ou à l'exécution). Quand à leur justification, je n'en ai pas : "je ne suis pas un GuRu de gcc" (dixit moi-même). Je les ai récupéré sur un site (ou un forum Gentoo) quand j'ai changé de machine (et ma mémoire ne remonte pas suffisamment loin pour que je me rappelle d'autre chose).

Voila; maintenant je suis près à les changer si vous me dites qu'ils sont "dangeureux", "inutiles" etc. mais sur un autre post ou par MP.   :Wink: 

Laissons (rendons) la place à FoX.44. :Smile: 

EDIT : la compil de mplayer est passée comme une fleur ce matin ...

----------

## guilc

Mais ça concerne aussi Fox.44 : il va devoir choisir des cflags non ?  :Wink: 

----------

## yoyo

 *guilc wrote:*   

> Mais ça concerne aussi Fox.44 : il va devoir choisir des cflags non ? 

 Amha c'est déja fait ...  :Razz: 

Mais je lis avec attention toutes les remarques postées ici pour éventuellement modifier les miens ...   :Wink: 

----------

## Enlight

Garrantis sans emm... sur x86 (sauf qques paquets genre gcc mais de toute façons ils strippent tous les flags)

-march=ton_arch -O2 -fomit-frame-pointers et -pipe qui n'est pas un "vrai" CFLAG comme tout ce qui commence en -m d'ailleurs que GCC ne fait que passer à GNU as : l'assembleur)

Je te propose de bencher sur une ou 2 applis pour voir.

C'est en plus à peu près ce qui se fait de mieux.

Si tu veux plus d'optimisations tu peux essayer -mregparm=2 ou 3 je dirais 3 si t'as presque que des progs en C et 2 si t'as pas mal de C++ et -freg-struct-return. Par contre ces flags modifient l'ABI des programmes donc tu ne peux pas avoir un programme avec et un autre sans (sauf le kernel qui est juste du code objec (pas abject hein! ça c'est NT)t c'est pour ça qu'il y'a l'option mregparm=3 maintenant dans menuconfig) Il faut donc les utiliser dès le bootstrap lorsque gcc est compilé en static

Problème, à ce moment là les devs gentoo font un strip de tous les flags spécifiés, donc si tu les veux, va falloire se battre! en fait il y'a normalement une astuce qui consisterai à utiliser à ce moment là:

CFLAGS=-mregparm=x -freg-struct-return

ALLOWED_FLAGS=$CFLAGS

mais j'ai jamais essayé...  :Rolling Eyes: 

Pour les CXXFLAGS, tu peux ajouter le -fvisibility=hidden qui élimine pas mal de symboles et devrait changer énormément le temps de lancement des applications en C++. Ce flag est normalement sain à présent.

Pour les LDFLAGS, il y'a un topic fait par un dev gentoo, qui garanti un choix qui ne casse rien, le seul inconvénient que je connaisse c'est que les arguments commencent par wl,$argument_pour_ld pour tous les makefile qui ne tiennet pas compte des LDFLAGS réellement. Or le makefile d'Emacs en tien compte et il faut donc retirer le wl, devant les arguments.

Solution : ajouter les LDFLAGS aux CFLAGS en gardant les wl,

----------

## FoX.44

Bon, je vien vous tenir au courrant de mon installation !

Et bien tout c'est passer niquel ! J'ai a présent un system minimal mais qui fonctionne !!

Prochaine étape, installation du system graphique ! Je mettre a compiler cette nuit je pense parce que a mon avis, sa va ètre long !

@+

----------

## Dominique_71

Personellement, j'ai gcc 3.4.4 depuis de nombreux mois et j'utilise

```
CFLAGS="-Os -march=pentium4 -pipe -msse -msse2 -pipe -fomit-frame-pointer -fno-ident -fforce-addr -ftracer -fweb"
```

```
LDFLAGS="-WI,-O1 -WI,--sort-common"
```

```
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
```

Ceci vous l'aurez compris avec un pentium 4

-Os donne une optimisation qui est presque aussi élevée que -O3 tout en étant considérée comme stable. De toute façon -O3 n'est pas utilisé systématiquement quand il est défini dans make.conf, car portage le remplace automatiquement par -O2 avec certains programmes comme  certaines librairies de fonctions mathématiques qui ne supportent pas -O3.

Ceci dit, j'utilisait -O3 avant, et le seul problème que j'aie rencontré était le cas d'un ou deux programmes (je ne me rapelle plus lesquels) qui refusaient de se compiler.

----------

## lmarcini

On exhume les vieux threads qui reposaient en paix ?   :Wink: 

----------

## dapsaille

j'me disais bien que je l'avais deja lu celui la :p

 d'ailleurs suis étonné que ce ne sois pas parti en troll GCC :p

----------

## Mickael

 *FoX.44 wrote:*   

> Bon, je vien vous tenir au courrant de mon installation !
> 
> Et bien tout c'est passer niquel ! J'ai a présent un system minimal mais qui fonctionne !!
> 
> Prochaine étape, installation du system graphique ! Je mettre a compiler cette nuit je pense parce que a mon avis, sa va ètre long !
> ...

 

Non pas si long que cela, avec un gnome-light ou son équivalent kde dont j'ai oublié le nom. Xorg, reste xorg, mais le gain de temps n'est pas à négliger pour gnome ou kde. Mais ils ne sont pas seuls!!!! xfce est légé comme bien d'autres...(veux pas m'attirer les foudres des non-gnome/kde [/pub])

----------

## Apsforps

 *MickTux wrote:*   

>  *FoX.44 wrote:*   Bon, je vien vous tenir au courrant de mon installation !
> 
> Et bien tout c'est passer niquel ! J'ai a présent un system minimal mais qui fonctionne !!
> 
> Prochaine étape, installation du system graphique ! Je mettre a compiler cette nuit je pense parce que a mon avis, sa va ètre long !
> ...

 

Euh, faut quand même espérer que depuis le 31 août 2005 son install est terminée....  :Razz: 

----------

## Mickael

 *Apsforps wrote:*   

>  *MickTux wrote:*    *FoX.44 wrote:*   Bon, je vien vous tenir au courrant de mon installation !
> 
> Et bien tout c'est passer niquel ! J'ai a présent un system minimal mais qui fonctionne !!
> 
> Prochaine étape, installation du system graphique ! Je mettre a compiler cette nuit je pense parce que a mon avis, sa va ètre long !
> ...

 

Put**** j'ai pas vu la date  :Embarassed:   :Embarassed:   :Embarassed:   :Embarassed:   :Embarassed: 

Aï, tappez pas   :Arrow:  []

EDIT :  *Trevoke wrote:*   

> Bon ca va, on le laisse mourir ce thread?...

 

Je suis d'accord, on peut même l'enterrer très très profond....  :Laughing: Last edited by Mickael on Fri Mar 17, 2006 3:37 pm; edited 1 time in total

----------

## ghoti

 *Apsforps wrote:*   

> Euh, faut quand même espérer que depuis le 31 août 2005 son install est terminée.... 

 

Un petit calcul marrant :

Mon premier PC i386 tournait à 16 Mhz avec 4 Mb de mémoire.

Pour l'instant, j'ai un 2800 Mhz avec 1024 Mb de RAM et il me faut une bonne vingtaine d'heures pour compiler une gentoo  à peu près utilisable.

En supposant que la vitesse de compilation soit directement proportionnelle à la vitesse du processeur et à la quantité de mémoire, mon premier PC aurait compilé gentoo en ... 100 ans   :Cool: 

D'accord, mes hypothèses sont loin d'être exactes mais c'est tout de même impressionnant ...

----------

## Trevoke

Bon ca va, on le laisse mourir ce thread?...

----------

## lmarcini

R.I.P...

----------

