Gentooistes : donnez vos CFLAGS/CXXFLAGS

Le but de mon topic est de voir un peut quels sont les CFLAGS que vous utilisez pour compiler et pour parler optimisation.

Je commence :

[fixed]CFLAGS="-Os -mtune=athlon-4 -march=athlon-4 -fomit-frame-pointer -pipe -m3dnow -mfpmath=sse"
CXXFLAGS="${CFLAGS}"
[/fixed]

GCC 3.4.3

Comme vous l’avez deviné, ma machine est un Athlon-XPM :smiley:

Je me demandais comment utiliser les flags “-fvisibility=hidden” et “-fvisibility-inlines-hidden”, en effet, il me semble que Mdk s’en est servi pour optimiser KDE mais quand j’ai voulu m’en servir hier, pas moyen de compiler kdelibs et pas mal d’autres programmes on fait la gueule parce que ça cache des symboles (j’vais pas aller plus loin car j’y pige pas grand chose, j’ai juste regarder la page d’info de gcc…)

Concernant les options -fvisibility, le configure de kde les active tout seul si ton compilo les propose, ce qui est ton cas avec gcc-3.4.3. Les applis doivent être codées de façon spécifique pour pouvoir les utiliser. Si tu rajoutes ces flags dans ton make.conf, tu risques d’avoir des gros prob.

PS: pourrais-tu me dire si tu as déjà compilé kde-3.4.0 avec gcc-3.4.3? Dans l’affirmative j’aimerais savoir si tu ne rencontre pas les mêmes petits bugs que moi (que je t’indiquerais) :slight_smile:

J’suis en train de tout recompiler avec GCC 3.4 là. Mais j’ai déjà des bugs : ça plante complètement quand je lance : konqueror en mode navigateur, kcontrol, kinfocenter ou affichage d’une parge web plus “complexe” qu’un HOWTO dans konqueror…

Le P4C et le Centrino (Banias).
[fixed]
CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe -fprefetch-loop-arrays -funroll-loops -finline-functions"
CXXFLAGS="${CFLAGS}"
[/fixed]

L’Athlon
[fixed]
CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
[/fixed]

GCC 3.4.3.20050110 depuis peu (en fait juste pour compiler kde 3.4)

Pour le Centrino, je vais surement changer -march=pentium4 par -march=pentium-m

Mes bugs sont un peu plus légers que les tiens :slight_smile: et semblent justement venir des options -fvisibility:

  • clic droit sur le kicker, sélection de “configure panel”, onglet “menus”, clic sur le bouton “edit Kmenu” et Kmenuedit ne vient pas alors qu’il se lance sans prob depuis la console.

  • en sélectionnant le control center depuis le l’applet “preference” du kicker ou depuis le kmenu, kcontrol ne vient pas alors que la selection des sous-catégories marche

  • la prévisualisation des fontes dans konqueror ne marche plus. Il s’agit d’un symbole non défini (new_creator) dans fontthumbnail.so. Celui-là, je l’ai corrigé en plaçant un KDE_EXPORT dans fontthumbnail.cpp.

  • dans konq toujours, l’intégration de KGet ne se fait pas. Il y a aussi un symbole non défini dans khtml_kget.so.

Mes deux derniers bugs proviennent à coup sûr des options -fvisibility, ils n’apparaissent pas si je compile avec gcc-3.3.5.

J’espère que tes bugs s’en iront lorsque tu auras tout recompilé.

[fixed]-O3 -march=pentium4 -mtune=pentium4 -mmmx -msse -msse2 -fomit-frame-pointer -pipe[/fixed]

J’ai essayé le flag -mfpmath=sse,387 sur une partition de test et apparemment ça ne provoque pas de bug, mais quel est le risque exact de son utilisation ?

Théoriquement, -mmmx -msse -msse2 sont implicites à -march=pentium4 -mtune=pentium4, tu n’es pas obligé de les donner explicitement. Normalement, tu peux les ôter.

+1 avec sTOne.
-mmmx -msse …

C’est déjà dans -march=pentium4

L’explication du pourquoi utiliser des options redondantes sous Gentoo en bas de cette page http://leander256.free.fr/gentoo/gcc-flags-chap04.html

Il a pas l’air mal ce siet. J’vais regarger ça ce soir.

sTone : J’en suis à 51 sur 237. J’en suis à la glibc :smiley:

Ok pour l’explication mais je trouve que c’est prendre des risques pour pas grand chose.
Et, entre nous soit dit, si une appli a vraiment besoin du mmx et sse, elle va faire des tests pdt son configure et les Makefiles seront générés ou écrits en conséquence.

Dumbledore > si tu utilises les ebuild séparés je pense qu’il est tout à fait normal que ton kde plante si tu le lances en cours de route

Nan, j’ai un KDE entièrement fonctionnel et compilé avec gcc 3.3.5 actuellement. De plus, j’ai utilisé kdebase-meta ce qu’il fait que j’ai tout kdelibs et kdebase.
Et je suis en train de recompiler tout le système avec gcc 3.4 :smiley:

Lorsque tu auras fini, pourrais-tu essayer de reproduire les bugs que j’obtiens avec kde-3.4.0 ?

oui oui

T’es pas trop pressé j’espère ? Je compile à 1,3 GHz :smiley:

J’ai tout mon temps, comme toi apparemment :smiley:

étonnant que ça marche avec ces flags, le centrino est un dérivé du pentium3 :sweat:

[fixed]CFLAGS="-O3 -march=athlon-xp -funroll-loops -fomit-frame-pointer -pipe"
CHOST=“i686-pc-linux-gnu”
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j2"
CCACHE_SIZE=“5G”[/fixed]
J’aurais peut-être dû mettre -ftracer (mais je vais sûrement le mettre un de ces 4, qui sait :p).

Sinon, pour les LDFLAGS, pas de souci de compilation (sauf emacs qui est compilé sans, car il ne passe pas avec :D).

Vi moi aussi çà m’a étonné. J’avais pentium3 -msse2 au tout début.

Puis après plusieurs essais, J’ai vu que pentium4 marchait tout aussi bien et produisait un code un chouillat plus rapide (environ 1%).

Mais avec GCC 3.4, il y a le Pentium-m maintenant donc je vais changer.

[fixed]moi@tatiana progC $ gcc -lm intcount.c
moi@tatiana progC $ time ./a.out

real 0m16.483s
user 0m16.432s
sys 0m0.028s
moi@tatiana progC $ gcc -lm -O3 intcount.c
moi@tatiana progC $ time ./a.out

real 0m9.877s
user 0m9.839s
sys 0m0.016s
moi@tatiana progC $ gcc -lm -O3 -march=pentium-m intcount.c
moi@tatiana progC $ time ./a.out

real 0m9.877s
user 0m9.841s
sys 0m0.014s
moi@tatiana progC $ gcc -lm -O3 -march=pentium-m -ffast-math intcount.c
moi@tatiana progC $ time ./a.out

real 0m2.690s
user 0m2.671s
sys 0m0.003s
moi@tatiana progC $

[/fixed]

Juste un exemple pour montrer l’importance de certaines option de compile.
ffast-math çà roxe :smiley: :smiley:
Dommage, c’est pas jugé stable !