# [CFLAGS] pour un celeron M (=pentium M)

## naerex

Salut

Je me demandais tout a coup si j'utilisais des cflags correct, ou alors suis je en sous performance avec ? Pour etre franc je les ai reglés comme ca au debut et je n'y ai jamais retouché. J'utilise le dernier gcc stable de portage.

```

CFLAGS="-O2 -march=i686 -fomit-frame-pointer -mmmx -msse -msse2"

```

J'ai un celeron M 320 c'est comme un pentium M mais avec 512ko et le speedstep en moins.

 :Smile: 

----------

## terreur

tiens quand on fait un 

```
cat /proc/cpuinfo
```

Ca donne ceci :

```

root@popeye terreur # cat /proc/cpuinfo 

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 9

model name      : Intel(R) Celeron(R) M processor         1500MHz

stepping        : 5

cpu MHz         : 1498.926

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe

bogomips        : 2973.69

```

Cette ligne :

```
flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe
```

Contient t'elle tous les flags que l'on peux mettre dans CFLAGS ??

----------

## Trevoke

Non, pas exactement. CFLAGS ne contient que des options a donner au compilateur.

man gcc est long mais assez bien fait, et tu peux facilement sauter les sections qui ne t'interessent pas, comme HP-UX, amd64, etc etc..

----------

## Enlight

Bon si ty'as les mêmes instructions qu'un pentium-malors :

soit tu as gcc 3.3.* et c'est march=pentium3 -msse2

soit tu as 3.4.* et c'est march=pentium-m

Si je me souviens bien sireyessire l'avait déjà expliqué.

----------

## terreur

On m'avait passé, il y a quelques tps un site qui regroupait ts les Cflags par processeur.

C'etait tres sympa.  Mais malheureusement, impossible de retrouver cette adresse.  Quelqu'un l'a t'il dans ses bookmarks ??

----------

## SunMetis

effectivement c pareil simplement IL FAUT ABSOLUMENT gcc 3.4 comme enonce precedement pour pentium-m et verifi bien que tu as switcher dessus .... Autre chose remplace march= par mtune=pentium-m chez moi ca plantait sinon ... mais bon c un conseil c tout 

bonne chance !!

----------

## terreur

J'ai trouve ceci sur le net (http://bbs.zju.edu.cn/cgi-bin/bbsgcon?board=Linux&file=G.1068447655.A&num=247).

 *Quote:*   

> 
> 
> i386 (Intel), do you really want to install gentoo on that ?
> 
> CHOST="i386-pc-linux-gnu"
> ...

 

----------

## penguin_totof

ah c'est pas mal ca, 

et le duron (AMD) est considéré comment??? Athlon-tbird, aka K7 (AMD) ????

```

chris@duron chris $ cat /proc/cpuinfo

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 6

model           : 8

model name      : AMD Duron(tm) 

stepping        : 1

cpu MHz         : 1800.070

cache size      : 64 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse pni syscall mmxext 3dnowext 3dnow

bogomips        : 3563.52

```

----------

## Enlight

 *penguin_totof wrote:*   

> ah c'est pas mal ca, 
> 
> et le duron (AMD) est considéré comment??? Athlon-tbird, aka K7 (AMD) ????
> 
> ```
> ...

 

les durons ont toujours été des athlons "castrés" au niveau de cache, donc arch= l'athlon de la même époque (ici athlon-xp)

----------

## sireyessire

 *Enlight wrote:*   

>  *penguin_totof wrote:*   ah c'est pas mal ca, 
> 
> et le duron (AMD) est considéré comment??? Athlon-tbird, aka K7 (AMD) ????
> 
> chris@duron chris $ cat /proc/cpuinfo
> ...

 

yep ça ressemble à de l'xp ça.

----------

## penguin_totof

ok, merci, j'etait en

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

CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer"

CXXFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" 
```

au lieu de

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

CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"

CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" 
```

ca vaut le coup de faire un emerge world ??

----------

## sireyessire

 *penguin_totof wrote:*   

> ok, merci, j'etait en
> 
> ```
> CHOST="i686-pc-linux-gnu"
> 
> ...

 

soit tu as du temps à perdre et tu fais un 

```
emerge -e world
```

sinon tu peux faire un 

```
emerge gcc glibc xorg-x11
```

 et le reste ça se fera au fil des emerge world

ou encore tu peux attendre que ça se fasse au fil des emerge world

----------

## terreur

Si tu veux, pour mon duron j'avais trouve de tres bonnes optimisations.

Je peux te les poster dimanche.

----------

## naerex

Je n'arrive pas à me décider. est ce que je reste en gcc3.3 et je mets -march=pentium3 ou est ce que ca vaut plutot le coup de passer en gcc3.4 surtout qu'il y a le 3.4.4 qui est sorti il y a quelques jours.

 :Smile: 

----------

## Adrien

 *naerex wrote:*   

> Je n'arrive pas à me décider. est ce que je reste en gcc3.3 et je mets -march=pentium3 ou est ce que ca vaut plutot le coup de passer en gcc3.4 surtout qu'il y a le 3.4.4 qui est sorti il y a quelques jours.
> 
> 

 

Tu peux passer à la version ~x86 y'a plein de monde qui l'utilise et ça marche très bien!  :Wink: 

----------

## naerex

bon bah ce soir, je sais ce qu'il me reste à faire  :Cool: 

j'ai lu que gcc3.4.4 a des backport de GCC 4.0 avec un peu d'espoir j'aurais les meilleurs optimisations de tout le forum  :Laughing: 

 :Wink: 

----------

## penguin_totof

 *terreur wrote:*   

> Si tu veux, pour mon duron j'avais trouve de tres bonnes optimisations.
> 
> Je peux te les poster dimanche.

 

ah oui, ca ne serait pas de refus

merci d'avance

----------

## Enlight

 *penguin_totof wrote:*   

>  *terreur wrote:*   Si tu veux, pour mon duron j'avais trouve de tres bonnes optimisations.
> 
> Je peux te les poster dimanche. 
> 
> ah oui, ca ne serait pas de refus
> ...

 

-fgentoo-sticker? -foxyde-nitrous-inject? -msynthetic-oil? -mabi=rice?

Nan sérieux, molo sur les CFLAGS march O2 fomit-frame-pointers et pipe, le reste c'est vraiment pas la panacée pour un make.conf (x86)

----------

## penguin_totof

 *Enlight wrote:*   

> 
> 
> -fgentoo-sticker? -foxyde-nitrous-inject? -msynthetic-oil? -mabi=rice?
> 
> 

 

 :Laughing:   :Laughing:   :Laughing:   :Laughing:   :Laughing: 

----------

## naerex

je l'ai pas mis -pipe quel benefices apporte t'il ?

----------

## penguin_totof

si tu as assez de ram , ca evite de passer les fichiers intermediaires pendant la compilation dans le disque

ils restent en ram, ca reduit donc (normalement) le temps de compilation et fait moin gratter ton disque

enfin, la difference doit etre assez subtile, je n'ait pas constaté une grosse amelioration, mais ce n'est peut etre qu'une impression...

----------

## naerex

j'ai une ptite barette de 256 Mo ça suffira ? :Laughing: 

----------

## penguin_totof

euh, je sais pas, ca risque d'etre juste, mais peut etre que je dit des connerien hein!

----------

## Enlight

 *naerex wrote:*   

> j'ai une ptite barette de 256 Mo ça suffira ?

 

aucun problème, pis si tu veux un système de fichier qui va pas syncer le disque toutes les 30 secondes, j'te conseille xfs (jfs ça devrait le faire aussi), moi mon disque gratte jamais avant l'installe proprement dite.

----------

## naerex

J'aimerais installer GCC 3.4.4

mon package.unmask :

```
=sys-devel/gcc-3.4.4
```

mon package.keywords :

```
sys-devel/gcc ~x86
```

etcat -v gcc

```

        [   ] 3.3.5-r1 (3.3)

        [ ~ ] 3.3.5.20050130 (3.3)

        [  I] 3.3.5.20050130-r1 (3.3)

        [ ~ ] 3.3.5.20050130-r2 (3.3)

        [M  ] 3.3.6 (3.3)

        [ ~ ] 3.4.1-r3 (3.4)

        [ ~ ] 3.4.3-r1 (3.4)

        [ ~ ] 3.4.3.20050110-r1 (3.4)

        [ ~ ] 3.4.3.20050110-r2 (3.4)

        [M  ] 3.4.4 (3.4)

        [M  ] 4.0.0 (4.0)

        [M  ] 4.0.1_beta20050521 (4.0)

```

Qu'est ce que j'ai oublié ???  :Shocked: 

----------

## Enlight

De le mettre dans le package.unmask.

----------

## sireyessire

 *Enlight wrote:*   

> De le mettre dans le package.unmask.

 

toi tu es aussi bien crevé:

 *Quote:*   

> 
> 
> mon package.unmask :
> 
> Code:
> ...

 

sinon dans l'ebuid il est en KEYWORDS="-*"

donc je sens qu'il y a une autre feinte à faire dans le package.keywords, genre pê un =sys-devel/gcc-3.4.4 -*

----------

## Enlight

 *sireyessire wrote:*   

>  *Enlight wrote:*   De le mettre dans le package.unmask. 
> 
> toi tu es aussi bien crevé:
> 
>  *Quote:*   
> ...

 

repas de famille  :Confused:  ... au fait bon courage pour tes exams et le reste!

----------

## naerex

balaise sireyessire, j'ai fait ce que tu as dit et du coup j'obtient ceci:

```

        [   ] 3.3.5-r1 (3.3)

        [M~ ] 3.3.5.20050130 (3.3)

        [  I] 3.3.5.20050130-r1 (3.3)

        [M~ ] 3.3.5.20050130-r2 (3.3)

        [   ] 3.3.6 (3.3)

        [ ~ ] 3.4.1-r3 (3.4)

        [ ~ ] 3.4.3-r1 (3.4)

        [ ~ ] 3.4.3.20050110-r1 (3.4)

        [ ~ ] 3.4.3.20050110-r2 (3.4)

        [   ] 3.4.4 (3.4)

        [   ] 4.0.0 (4.0)

        [   ] 4.0.1_beta20050521 (4.0)

```

Je n'ai plus qu'a masker GCC 4 et c'est bon

----------

## Leander256

 *naerex wrote:*   

> je l'ai pas mis -pipe quel benefices apporte t'il ?

 

C'est l'heure de notre page de pub:

Les CFLAGS sous Gentoo

----------

## Trevoke

apapou le link.

----------

## terreur

Voici pour le duron :

```

CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops -fforce-addr -falign-functions=4"

```

----------

## penguin_totof

 *terreur wrote:*   

> Voici pour le duron :
> 
> ```
> 
> CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops -fforce-addr -falign-functions=4"
> ...

 

et concretement, ca veut dire quoi, parce que ca sent l'optimisation foireuse a plein nez ca... :Confused: 

avec quelques explications et/ou arguments, pourquoi pas, mais bon...

merci!

----------

## terreur

Ce que ca veut dire ... aucune idee...  :Embarassed: 

Mais ca fait 2 ans que ca tourne nickel chez moi.

----------

## sireyessire

 *terreur wrote:*   

> Ce que ca veut dire ... aucune idee... 
> 
> Mais ca fait 2 ans que ca tourne nickel chez moi.

 

 *Quote:*   

> CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops -fforce-addr -falign-functions=4"

 

effectivement c'est du foireux  :Razz: 

tu oublies le -ffast-math (fortement/ultra) déconseillé par la documentation gcc...

sinon le -O3 c'est discutable mais c'est ton choix.

donc sans le -ffast-math ça va.

----------

## Enlight

 *sireyessire wrote:*   

>  *terreur wrote:*   Ce que ca veut dire ... aucune idee... 
> 
> Mais ca fait 2 ans que ca tourne nickel chez moi. 
> 
>  *Quote:*   CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops -fforce-addr -falign-functions=4" 
> ...

 

+1, par contre -fforce-addr faut avoir de corones aussi.... sur x86 il est pas recommandé, mais je crois que sur x86_64 ça passe. Faudrait voir le sticky how-to 170% ricing dans la section chat du forum, il parlent des flags considérés sains.

Enfin bon j'dis ça mais j'ai longtemps fait mon jacky avec les cflags (mais dasn des install en chroot hein, pas fou non plus)

----------

## terreur

Je compile avec ce CFLAGS là depuis le debut sur mon duron et jamais aucun pblm.  Tt est nickel et hyper stable.

----------

## terreur

Je viens de trouver ce forum qui parle aussi de cette optimisation http://forum.linux.by/viewtopic.php?t=3167 (cherchez vers le bas)

Mais je ne comprends pas le commentaire  :Confused: 

----------

## sireyessire

 *terreur wrote:*   

> Je compile avec ce CFLAGS là depuis le debut sur mon duron et jamais aucun pblm.  Tt est nickel et hyper stable.

 

 *doc gcc wrote:*   

> 
> 
> -ffast-math
> 
>     Sets -fno-math-errno, -funsafe-math-optimizations,
> ...

 

tu as besoin d'autres explications?

sinon Enlight, le -fforce-addr je l'avais et j'avais eu que des problèmes sur mplayer mais c'était avant qu'il le filtre.

----------

