Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[gentoo-user-fr] conseil pour CFLAGS

30 réponses
Avatar
Christophe PEREZ
Bonsoir,

J'aurais besoin de conseils pour optimiser mes compilations, en
particulier le CFLAGS.
En effet, j'ai fait pas mal de config diff=E9rentes, mais je ne suis pas =
du
tout s=FBr de moi, et comme mplayer ne tourne toujours pas, c'est bien qu=
e
j'ai quelque chose qui coince.

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 11
model name : Intel(R) Celeron(TM) CPU 1300MHz
stepping : 1
cpu MHz : 1303.397
cache size : 256 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 pae mce cx8 sep mtrr pge mca cmo=
v pat pse36 mmx fxsr sse
bogomips : 2580.48

pour l'instant, j'ai :
CFLAGS=3D"-march=3Dpentium3 -O3 -pipe -fomit-frame-pointer -mfpmath=3Dsse=
-msse -mmmx"

En plus, j'avais jusqu'=E0 maintenant 3dnow dans le USE, que je viens
d'enlever parce que je pense qu'il ne le faut pas.

J'ai une carte nvidia, et pour mplayer, j'ai donc :
# equery uses mplayer
[ Colour Code : set unset ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]

U I [ Found these USE variables in : media-video/mplayer-1.0_pre5-r4 ]
- - 3dfx : Adds support for 3dfx video cards to XFree86. See: vood=
oo3
- + 3dnow : Adds support for 3dnow multimedia processor instruction=
s
- - 3dnowex : Enables 3dnow extensions in mplayer
- - aalib : Adds support for media-libs/aalib (ASCII-Graphics Libra=
ry)
+ + alsa : Adds support for media-libs/alsa-lib (Advanced Linux So=
und Architecture)
- - altivec : Adds support for optimizations for G4 and G5/ppc970 pro=
cessors
- - arts : Adds support for aRts: the KDE sound daemon
- - bidi : Enables bidirectional language support
- - debug : Tells configure and the makefiles to build for debuggin=
g. Effects vary across packages, but generally it will at least add -g to=
CFLAGS. Remember to set FEATURES=3Dnostrip too
+ + divx4linux : Adds support for divx.com's DivX(tm) mpeg4 libary
- - doc : Adds extra documentation (API, Javadoc, etc)
- - dvb : Adds support for DVB (Digital Video Broadcasting)
- - cdparanoia : Enables cdparanoia support
- - directfb : Adds support for DirectFB layer (library for FB devices=
)
+ + dvd : Adds support for DVDs
+ - dvdread : Enables usage of Ogle's libdvdread rather than mpdvdkit=
for DVD playback
- - edl : Enables usage of Edit Decision Lists
+ + encode : Adds support for MEncoder or LaME encoder, wherever app=
licable
+ + esd : Adds support for media-sound/esound (Enlightened Sound =
Daemon)
+ - fbcon : Adds framebuffer support for the console, via the kerne=
l
+ + gif : Adds GIF image support
- - ggi : Adds support for media-libs/libggi (non-X video api/dri=
vers)
+ + gtk : Adds support for x11-libs/gtk+ (The GIMP Toolkit)
- - i8x0 : Enables support for the i8x0 xvmc video driver
- - ipv6 : Adds support for IP version 6
- - jack : Adds support for the JACK Audio Connection Kit
+ - joystick : Add support for joysticks in all packages
+ + jpeg : Adds JPEG image support
- - libcaca : Enables libcaca support, colored ASCII-art graphics
- - lirc : Adds support for lirc (Linux's Infra-Red Remote Control=
)
- - live : Enables live.com streaming media support
- - lzo : Enables support for lzo compression
+ + mad : Adds support for mad (high-quality mp3 decoder library =
and cli frontend)
- - matroska : Use external libmatroska, rather then bundled version
- - matrox : Adds Matrox MGA support to mplayer
+ + mpeg : Adds libmpeg3 support to various packages.
- - mmx : Adds support for optimizations for Pentium MMX and Athl=
on class processors
- - mmx2 : enables mmx2 support
- - mythtv : Enables mythtv support in mplayer
- - nas : Adds support for network audio sound
+ - network : Enables network streaming support
+ + nls : unknown
+ - nvidia : Enables support for the nvidia xvmc video driver
+ + oggvorbis : Adds support for the OggVorbis audio encoding
+ + opengl : Adds support for OpenGL
+ + oss : Adds support for OSS (Open Sound System)
+ + png : Adds support for libpng (PNG images)
+ - real : Adds real video support to real through win32codecs
+ - rtc : Enables usage of the linux real time clock. The altern=
ative is software emulation of rtc.
+ + samba : Adds support for SAMBA
+ + sdl : Adds support for Simple Direct Layer (media library)
+ + sse : fast floating point optimization for PentiumIII+ class =
chips
+ + svga : Adds support for SVGAlib (graphics library)
- - tga : Enables tga output support
- - theora : Adds support for the Theora Video Compression Codec
+ + truetype : Adds support for FreeType and/or FreeType2 fonts
+ - v4l : Enables video4linux support
+ - v4l2 : Enables video4linux2 support
+ + X : Adds support for X11
- - xanim : Enables support for xanim based codecs
+ + xinerama : Add support for the xinerama X11 extension, which allow=
s you to stretch your display across multiple monitors
+ + xmms : Check/Support for XMMS (X MultiMedia System) player.
+ + xv : Adds in optional support for the Xvideo extension (an X=
API for video playback)
+ + xvid : Adds support for xvid.org's open-source mpeg-4 codec
+ - xvmc : Enables X-Video Motion Compensation support
- - debug : Tells configure and the makefiles to build for debuggin=
g. Effects vary across packages, but generally it will at least add -g to=
CFLAGS. Remember to set FEATURES=3Dnostrip too

Mais, d=E8s que je tente de le recompiler, j'ai un probl=E8me =E0 cause d=
e
real (que j'aimerais bien avoir) :
* Real libs not found! Install win32codecs
* And ensure that real USE flag is enabled!

pourtant :
# qpkg -i -I win32codecs
media-libs/win32codecs-20040916-r1 *
Win32 binary codecs for video and audio playback support [ http:/=
/www.mplayerhq.hu/ ]

Donc, vu tout =E7a, je voudrais bien mettre tout mon syst=E8me d'aplomb,
quitte =E0 en recompiler un max, mais pour =E7a, faut que cette fois je s=
ois
un peu plus s=FBr de l'optimisation.

Merci grandement, d'avance.

--=20
Christophe PEREZ

--
gentoo-user-fr@gentoo.org mailing list

10 réponses

1 2 3
Avatar
Yoann Pannier
Christophe PEREZ wrote:
# emerge --emptytree --ask world



Avant ou après nettoyage du fichier world ?



Si tu fais le ménage avant (fichier world, depclean, revdep-rebuild), il
y a des chances pour que certains paquets deviennent inutiles et soient
virés. Au final ça te fera probablement moins de choses à recompiler.

--
Yoann Pannier

--
mailing list
Avatar
Christophe PEREZ
Le Mon, 13 Dec 2004 17:29:59 +0100, Bruno Félix a écrit :


Y doit rester un package compilé avec tes anciens CFLAGS plus haut da ns
les dépendances. Ou alors ça vient du fait que tu avais 3dnow dans tes
USE. Bref, t'as pas fini de recompiler y me semble :/



:-)

Ceci dit, tes USE et tes CFLAGS sont corrects. Tu peux y aller gaiement .



Merci, c'est déjà rassurant de savoir qu'on est sur la bonne piste ;- )

--
Christophe PEREZ


--
mailing list
Avatar
Christophe Garault
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Christophe PEREZ a écrit :


Ça, c'est pour le USE, mais notre préoccupation était plutôt le CFLAGS.



Pfiouu, j'vais m'coucher moi... ;-)

- --
Christophe Garault
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)

iD8DBQFBvd8iJ5Nh3YMYAQsRAmJZAKCA2mczQKFO1wf40AnGRhrwSqpMPgCdG8uw
U0Wi4y5RAtQ8n7zjhS7h1W4 ªk7
-----END PGP SIGNATURE-----


--
mailing list
Avatar
Christophe PEREZ
Le Mon, 13 Dec 2004 18:41:13 +0100, Yoann Pannier a écrit :

Si tu fais le ménage avant (fichier world, depclean, revdep-rebuild), il
y a des chances pour que certains paquets deviennent inutiles et soient
virés. Au final ça te fera probablement moins de choses à recompi ler.



Et en clair, pour nettoyer mon fichier world, j'en vire ce que je ne
souhaite pas explicitement installer, c'est ça ?
En gros, tout ce que je ne connais pas.
J'ai bien essayé d'utiliser le script dep conseillé ici (désolé, pas
encore habitué et me souviens pas des noms), mais il faut que j'en lise
la doc un minimum car un dep -pPdw ne me donne rien du tout.

Merci à tous, même si je ne réponds pas individuellement à chaque
message.
Ceci dit, ça fait plaisir de voir cette liste vivante, j'ai eu peur au
début ;-)

--
Christophe PEREZ


--
mailing list
Avatar
Christophe PEREZ
Le Mon, 13 Dec 2004 16:10:10 -0400, Christophe PEREZ a écrit :

Et en clair, pour nettoyer mon fichier world, j'en vire ce que je ne
souhaite pas explicitement installer, c'est ça ?
En gros, tout ce que je ne connais pas.



En fait, ce fichier world ne m'a pas semblé exagérément rempli.
Le voici avant traitement :

media-gfx/gqview
x11-misc/xscreensaver
app-shells/bash-completion
media-libs/libsdl
media-gfx/sane-backends
sys-kernel/linux-headers
x11-plugins/gkrellm-reminder
app-cdr/xcdroast
media-gfx/xsane
dev-perl/gtk2-spell
sys-fs/udev
app-portage/mirrorselect
media-sound/mp32ogg
media-tv/xawtv
kde-base/kde-i18n
net-ftp/gftp
app-arch/unrar
games-arcade/tuxracer
app-dicts/ispell-fr
media-sound/wavplay
sys-apps/lshw
x11-misc/xbindkeys
games-fps/enemy-territory
media-libs/id3lib
app-cdr/cdrtools
net-misc/tightvnc
xfce-base/xfce4
app-admin/logrotate
kde-base/kdesdk
x11-terms/aterm
media-video/nvidia-glx
app-misc/mc
net-www/nvu
app-editors/gedit
media-sound/mpg123
x11-plugins/gkrellm-leds
www-apps/nut
sys-kernel/development-sources
app-emulation/vmware-workstation
app-text/tree
media-video/ffmpeg
media-sound/lame
dev-db/myodbc
media-sound/awesfx
media-video/transcode
sys-apps/xinetd
app-shells/bash-completion-config
sys-apps/anacron
net-misc/netkit-telnetd
dev-lang/tcl
net-ftp/lftp
sys-fs/disktype
sys-libs/lib-compat
sys-apps/lm-sensors
dev-lang/tk
gnome-base/gnome
media-gfx/sane-frontends
net-analyzer/nmap
sys-libs/glibc
media-video/nvidia-kernel
sys-apps/vixie-cron
media-video/xine-ui
net-print/cups
media-sound/aumix
net-analyzer/xtraceroute
net-misc/ntp
net-nds/portmap
media-video/mplayer
net-misc/d4x
media-libs/win32codecs
media-libs/faad2
media-video/vlc
sys-apps/sg3_utils
media-libs/libvorbis
media-sound/sox
media-sound/mp3info
app-office/grisbi
media-libs/libdv
games-action/bzflag
app-editors/vim
net-misc/xf4vnc
media-libs/divx4linux
media-sound/grip
net-www/mozilla-firefox
media-sound/teamspeak2-client-bin
media-libs/libmad
app-admin/sysklogd
net-im/amsn
app-dicts/aspell-fr
dev-util/ccache
net-fs/nfs-utils
gnome-extra/gtkhtml
media-libs/xvid
app-admin/gkrellm
mail-client/nail
app-editors/quanta
app-cdr/cdrdao
app-portage/ebuilder
sys-fs/squashfs-tools
sys-apps/lsof
dev-libs/libcdio
app-emulation/qemu
app-arch/rar
net-im/gnomemeeting
app-emulation/wine
gnome-extra/gnome-audio
media-video/dvdrip
app-admin/sudo
media-libs/audiofile
app-admin/hddtemp
net-analyzer/traceroute
x11-plugins/gkrellm-hddtemp
media-gfx/imagemagick
x11-misc/synergy
app-arch/star
net-misc/netkit-rsh
x11-base/xorg-x11
dev-util/catalyst
sys-apps/slocate
x11-terms/eterm
media-video/xvid4conf
net-im/gaim
net-misc/smb4k
dev-util/cvs
app-admin/fam
net-misc/whois
sys-fs/sysfsutils
sys-apps/coldplug
net-analyzer/iptraf
media-video/subtitler-yuv
app-text/htmltidy
dev-ruby/diff
media-sound/alsamixergui
media-libs/libogg
app-office/openoffice
app-portage/gentoolkit
app-cdr/cdrecord-prodvd
net-irc/xchat
net-news/pan
sys-apps/hotplug
app-misc/screen

j'en ai enlevé :

< app-dicts/ispell-fr
< dev-libs/libcdio
< gnome-extra/gtkhtml
< media-libs/audiofile
< media-libs/faad2
< media-libs/libdv
< media-libs/libmad
< media-libs/libogg
< media-libs/libsdl
< media-libs/libvorbis
< sys-kernel/linux-headers
< sys-libs/glibc
< sys-libs/lib-compat

J'ai fait
- emerge depclean (qui a juste désinstallé ispell et ispell-fr)
- revdep-rebuild (qui a installé net-libs/gnutls, bizarre qu'il n'ait
pas été installé avant s'il en avait besoin)
- emerge -Dua world (qui n'a rien installé)

Voilà... alors maintenant, à part le fameux emerge -e world, je ne vo is
plus trop quoi faire.

--
Christophe PEREZ


--
mailing list
Avatar
Bruno Felix
Le lundi 13 décembre 2004 à 16:10 -0400, Christophe PEREZ a écrit :
Le Mon, 13 Dec 2004 18:41:13 +0100, Yoann Pannier a écrit :

> Si tu fais le ménage avant (fichier world, depclean, revdep-rebuild ), il
> y a des chances pour que certains paquets deviennent inutiles et soie nt
> virés. Au final ça te fera probablement moins de choses à recom piler.

Et en clair, pour nettoyer mon fichier world, j'en vire ce que je ne
souhaite pas explicitement installer, c'est ça ?
En gros, tout ce que je ne connais pas.
J'ai bien essayé d'utiliser le script dep conseillé ici (désolé , pas
encore habitué et me souviens pas des noms), mais il faut que j'en li se
la doc un minimum car un dep -pPdw ne me donne rien du tout.


un ptit backup de world, puis dep -wa pour la nettoyer.

Merci à tous, même si je ne réponds pas individuellement à chaq ue
message.
Ceci dit, ça fait plaisir de voir cette liste vivante, j'ai eu peur a u
début ;-)





--
mailing list
Avatar
Bruno Felix
Le lundi 13 décembre 2004 à 17:27 +0100, Yoann Pannier a écrit :
Christophe PEREZ wrote:
> Ah ok, et j'en déduis que le fichier world ne devrait contenir que les
> applications "finales" et non pas les dépendances ?

C'est mieux, oui.

> Peut-être devrais-je alors le nettoyer vu tous les emerge que j'ai pu
> lancer, non ?

Bonne idée, pas nécéssaire, mais plus propre. Autrement emerge world
fait plus qu'il ne devrait, et emerge depclean en fait moins.

> Ok, ben j'en étais arrivé à revenir à :
> CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer"
> pour mes plus récentes compilations.

A mon avis, c'est très bien comme ça. Pour un desktop, je préfère -Os,
mais -O2 c'est sans problème. Ces flags te donneront un système optimisé
pour ton processeur, avec les options compatibles activés par gcc
(-march=pentium3).



Tiens, -Os ? Etrange, je l'aurais plutot utilisé pour un système
embarqué ou la charge mémoire a beaucoup d'importance. ou pour un pc
avec tres peu de ram.
En gros, tes temps de chargement doivent être excellents, la charge
mémoire plus faible, mais ça doit consommer plus de cpu en exécution.
Me trompe je ?
Quand je vois déjà comment certains sites webs peuvent faire ramer ma
machine parce qu'ils sont animés dans tous les coins, je me demande
comment ça se passe en -Os.

Sans savoir exactement ce qu'on fait, activer d'autres options peut
avoir des effets indésirables, voir contraire à l'objectif (-O3 ou
fun-roll-loops peuvent certains softs plus rapides, mais d'autres seront
plus lent...


Possible. Si j'ai bien compris, funroll-loops déroule les boucles...
donc exécutables plus gros (donc chargement plus long, charge mémoire
plus importante), mais plus optimisé du point de vue nombre
d'instructions (charge cpu plus faible). Par contre, je me demande s'il
y a plus de transferts de cache, ce qui pourrait ralentir le système.
Qqun sait ?
). A mon avis, compiler tout un système en aveugle avec ce
genre d'option est une mauvaise idée.


Vrai... ceci dit, celle ci est loin d'etre une des pires que je
connaisse.


--
mailing list
Avatar
Yoann Pannier
Bruno Felix said:
En gros, tes temps de chargement doivent être excellents, la charge
mémoire plus faible, mais ça doit consommer plus de cpu en exécution.
Me trompe je ?



Disons que je gagne en temps d'accès (mais je ne n'utiliserai pas le
mot excellent), et que je ne ressens aucune perte à l'execution. Et de
mon point de vue, les sensations sont plus importantes que les
benchmarks.

Quand je vois déjà comment certains sites webs peuvent faire ramer ma
machine parce qu'ils sont animés dans tous les coins, je me demande
comment ça se passe en -Os.



:) perso je ne fréquente pas ce genre de site, question de principe
(ça fait quand même 15 ans que le logo en flamme qui tourne est passé
de mode...). Mais en tout cas, je n'ai jamais remarqué de vraie
lenteur, même la fois où j'avais forcé l'Os pour mozilla, pour voir
(pour autant que je sache, il est toujours forcé à O2 dans l'ebuild).

Donc pour moi, Desktop == Os. J'ai peut-être tort, mais je ne m'en
porte pas mal ;) D'autant que les applications qui bénéficient
*vraiment* d'une optimisation différente, le font d'elles même
(mplayer je crois est en O3 qq soient les CFLAGS par exemple, sans
parler des autres flags).

Possible. Si j'ai bien compris, funroll-loops déroule les boucles...
donc exécutables plus gros (donc chargement plus long, charge mémoire
plus importante), mais plus optimisé du point de vue nombre
d'instructions (charge cpu plus faible). Par contre, je me demande
s'il
y a plus de transferts de cache, ce qui pourrait ralentir le système.
Qqun sait ?



Tout cela dépend trop du contexte : La taille des caches, la quantité
de RAM, la vitesse du disque, l'application, la taille du code en
fonction du flag présent ou absent, la manière dont on s'en sert, les
applications qui tournent en même temps, etc etc.

Pour savoir si l'usage que je fais d'une application sur une machine
donnée bénéfieciera ou sera pénalisé par ce genre de flag, il faudrait
que je fasse des benchs à chaque fois. Dans le doute je reste neutre
dans l'esprit et dans les CFLAGS ! C'est à dire -march, -pipe,
-fomit-frame-pointers et O2 muté en Os juste pour les chargement. Pour
le reste, je me fie aux ebuilds.

--
Yoann Pannier


--
mailing list
Avatar
Christophe PEREZ
Le Tue, 14 Dec 2004 01:08:26 +0100, Bruno Felix a écrit :

un ptit backup de world, puis dep -wa pour la nettoyer.



ça ne semble rien faire du tout, ou alors, je n'ai pas téléchargé le
bon script.
Voici ce que j'avais trouvé (faut dire qu'avec dep comme critère de
recherche, j'ai eu droit à pas mal de réponses) :

wget http://home.jesus.ox.ac.uk/~ecatmur/my-bin/dep

--
Christophe PEREZ


--
mailing list
Avatar
Bruno Félix
Le mar 14/12/2004 à 03:40, Yoann Pannier a écrit :
Bruno Felix said:
> En gros, tes temps de chargement doivent être excellents, la charge
> mémoire plus faible, mais ça doit consommer plus de cpu en exécution.
> Me trompe je ?

Disons que je gagne en temps d'accès (mais je ne n'utiliserai pas le
mot excellent), et que je ne ressens aucune perte à l'execution. Et de
mon point de vue, les sensations sont plus importantes que les
benchmarks.


Clair, mais pour moi les 2 aspects sont importants. (temps de chargement
et charge cpu). donc 03 pour optimiser l'exécution et prelink pour
améliorer les chargements. Je dis pas que c'est comme ça qu'il faut
faire... Juste, je me demandais pq Os, j'ai vu que pas mal de gens
l'utilisent...

> Quand je vois déjà comment certains sites webs peuvent faire ramer ma
> machine parce qu'ils sont animés dans tous les coins, je me demande
> comment ça se passe en -Os.

:) perso je ne fréquente pas ce genre de site, question de principe
(ça fait quand même 15 ans que le logo en flamme qui tourne est passé
de mode...).



arf, cette bonne vieille flamme sur une torche... d'un mauvais gout...
ignoble... j'adore :D
Non, sans rire, parfois en browsant, ya mon cpu qui monte comme un fou.
je pense notamment aux gifs animés qu'on trouve en pagaille sur certains
forums et à certaines animations flash...
Chuis pas partisant, mais parfois, pas le choix...

Mais en tout cas, je n'ai jamais remarqué de vraie
lenteur, même la fois où j'avais forcé l'Os pour mozilla, pour voir
(pour autant que je sache, il est toujours forcé à O2 dans l'ebuild).

Donc pour moi, Desktop == Os. J'ai peut-être tort, mais je ne m'en
porte pas mal ;)


Je dis pas que t'as tord, je me demande juste pq...
Et suis heureux que tu te portes bien :)

D'autant que les applications qui bénéficient
*vraiment* d'une optimisation différente, le font d'elles même
(mplayer je crois est en O3 qq soient les CFLAGS par exemple, sans
parler des autres flags).


O4 y me semble.

> Possible. Si j'ai bien compris, funroll-loops déroule les boucles...
> donc exécutables plus gros (donc chargement plus long, charge mémoire
> plus importante), mais plus optimisé du point de vue nombre
> d'instructions (charge cpu plus faible). Par contre, je me demande
> s'il
> y a plus de transferts de cache, ce qui pourrait ralentir le système.
> Qqun sait ?

Tout cela dépend trop du contexte : La taille des caches, la quantité
de RAM, la vitesse du disque, l'application, la taille du code en
fonction du flag présent ou absent, la manière dont on s'en sert, les
applications qui tournent en même temps, etc etc.


Clair, ya plein de paramètres. Je sens que je vais retourner un peu à
mes bouquins moi...

Pour savoir si l'usage que je fais d'une application sur une machine
donnée bénéfieciera ou sera pénalisé par ce genre de flag, il faudrait
que je fasse des benchs à chaque fois. Dans le doute je reste neutre
dans l'esprit et dans les CFLAGS ! C'est à dire -march, -pipe,
-fomit-frame-pointers et O2 muté en Os juste pour les chargement. Pour
le reste, je me fie aux ebuilds.


Pareil... sauf pour le Os...



--
mailing list
1 2 3