Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

Bonjour,

voila je sais pas si vous le savez mais dans Gentoo on peut optimiser la compilation des programmes.

Il faut appliquer des CFLAGS pour ca.

Apres avoir lu moult page sur le net, et apres avoir nicke mon installation, je suis en train de me poser une question.

Quel est linteret de rentrer des CFLAGS de ce type

CFLAGS="-march=pentium-m -mtune=pentium-m -O2 -pipe -falign-jumps -fcaller-saves -fcse-follow-jumps -fexpensive-optimizations -finline-functions -fno-crossjumping -fno-defer-pop -fno-delayed-branch -fno-if-conversion2 -fno-loop-optimize -fno-math-errno -fno-omit-frame-pointer -fno-signaling-nans -fno-thread-jumps -fno-trapping-math -foptimize-sibling-calls -fregmove -frename-registers -freorder-functions -fsched-interblock -fsched-spec -fschedule-insns2 -fstrength-reduce -fstrict-aliasing -funsafe-math-optimizations -funswitch-loops -maccumulate-outgoing-args -malign-double -minline-all-stringops"

 

alors que dans le man de gcc on a ca

-O2 turns on all optimization flags specified by -O. It also turns

on the following optimization flags: -fthread-jumps -fcrossjumping

-foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks

-fgcse -fgcse-lm -fexpensive-optimizations -fstrength-reduce -fre-

run-cse-after-loop -frerun-loop-opt -fcaller-saves -fpeephole2

-fschedule-insns -fschedule-insns2 -fsched-interblock

-fsched-spec -fregmove -fstrict-aliasing

-fdelete-null-pointer-checks -freorder-blocks -freorder-functions

-falign-functions -falign-jumps -falign-loops -falign-labels

-ftree-vrp -ftree-pre

 

En gros si jai bien compris, il n"y a pas d'interet de mettre les flags qui sont deja inclu dans O2?? Si?

 

Enfin voila si quelqu'un pouvait me repondre histoire detre sur de ce que j'avance.

 

merci, et desole pour les faute mais la jai un clavier qwerty et je suis perdu.

Posté(e)

je pense que deja quand tu lis le make.conf.example, tu peux y lire que le mtune et le march ne s utilise pas pour les memes raisons. ensuite je sais que les cflags te permettent d optimiser ton installe. mais moi je ne pourrais pas t en dire plus dessus. mon cflags est tout simple:

CFLAGS="-march=pentium3 -O2 -pipe"

 

et ca tourne bien pour le moment

Posté(e)

Ouais, bah je pense que ça sert de les mettre en double: surtout quand ils se contredisent...^^

En tout cas bha là j'ai refait toute mon install de Gentoo, et cette fois ci je ne vais pas faire mumuse avec les CFLAGS(enfin pas trop^^)

 

Voili VOilou

Posté(e)

les Cflags mouais.....

 

Archlinux a aussi des Cflags ( mais ça sert uniquement quand on fait quelques packages en locale makepkg après avoir récuperer les tar.gz sur AUR )

 

Voilà un exemple du fichier par défaut /etc/makepkg.conf

# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="i686"
CHOST="i686-pc-linux-gnu"

#-- Exclusive: will only run on i686
# -mtune builds exclusively for an architecture
# -mcpu optimizes for an architecture, but builds for the whole processor family
CFLAGS="-march=i686 -O2 -pipe"
CXXFLAGS="-march=i686 -O2 -pipe"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"

Compiler_Flags_and_Customizing_makepkg : plus de détails ici

C' est comme ça d' origine, j' ai rien touché.....y a même pas besoin de configurer cette partie pendant l' installation

 

Quel intérêts a aller chercher des tar.gz sur AUR pour finir les packages pkg.tar.gz ?

  • Quand on ne les trouve pas dans Current, communtity, Extra
  • Conflit entre X packages, un packages de AUR en CVS où autre peut résoudre le problème
  • Aller sur AUR évite d' activer Testing et Unstable
  • Réaliser ses packages et les envoyé sur AUR ( participer au dévollepement de X packages )
  • Une fois les packages bien stable, ils passent dans Community

Sinon, bonne compilation ( continuations ) :P

Posté(e)

j'ai trouvé un script sur le forum de gentoo pour trouver de bonne cflags :

#!/bin/sh

# Author: pixelbeat

#This script is Linux specific
#It should work on any gcc >= 2.95 at least

#these apply to any arch (just here for reference)
unsafe_math_opts="-ffast-math -fno-math-errno -funsafe-math-optimizations -fno-trapping-math"

gcc_version=`gcc -dumpversion | sed 's/\([0-9]\{1,\}\.[0-9]\{1,\}\)\.*\([0-9]\{1,\}\)\{0,1\}/\1\2/'`

IFS=":"
while read name value; do
unset IFS
name=`echo $name`
value=`echo $value`
IFS=":"
if [ "$name" == "vendor_id" ]; then
	vendor_id="$value"
elif [ "$name" == "cpu family" ]; then
	cpu_family="$value"
elif [ "$name" == "model" ]; then
	cpu_model="$value"
elif [ "$name" == "flags" ]; then
	flags="$value"
fi
done < /proc/cpuinfo
unset IFS

if [ "$vendor_id" == "AuthenticAMD" ]; then
if [ "$cpu_family" == "4" ]; then
	_CFLAGS="$_CFLAGS -march=i486"
elif [ "$cpu_family" == "5" ]; then
	if [ "$cpu_model" -lt "4" ]; then
		_CFLAGS="$_CFLAGS -march=pentium"
	elif [ "$cpu_model" == "6" ] || [ "$cpu_model" == "7" ]; then
		_CFLAGS="$_CFLAGS -march=k6"
	elif [ "$cpu_model" == "8" ] || [ "$cpu_model" == "12" ]; then
		if expr $gcc_version '>=' 3.1 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=k6-2"
		else
			_CFLAGS="$_CFLAGS -march=k6"
		fi
	elif [ "$cpu_model" == "9" ] || [ "$cpu_model" == "13" ]; then
		if expr $gcc_version '>=' 3.1 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=k6-3"
		else
			_CFLAGS="$_CFLAGS -march=k6"
		fi
	fi
elif [ "$cpu_family" == "6" ]; then
	if [ "$cpu_model" -le "3" ]; then
		if expr $gcc_version '>=' 3.0 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=athlon"
		else
			_CFLAGS="$_CFLAGS -march=k6"
		fi
	elif [ "$cpu_model" == "4" ]; then
		if expr $gcc_version '>=' 3.1 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=athlon-tbird"
		elif expr $gcc_version '>=' 3.0 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=athlon"
		else
			_CFLAGS="$_CFLAGS -march=k6"
		fi
	elif [ "$cpu_model" -ge "6" ]; then #athlon-{4,xp,mp}
		if expr $gcc_version '>=' 3.1 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=athlon-xp"
		elif expr $gcc_version '>=' 3.0 >/dev/null; then
			_CFLAGS="$_CFLAGS -march=athlon"
		else
			_CFLAGS="$_CFLAGS -march=k6"
		fi
	fi
fi
else #everything else "GenuineIntel"
if [ "$cpu_family" == "3" ]; then
	_CFLAGS="$_CFLAGS -march=i386"
elif [ "$cpu_family" == "4" ]; then
	_CFLAGS="$_CFLAGS -march=i486"
elif [ "$cpu_family" == "5" ] && expr $gcc_version '<' 3.1 >/dev/null; then
	_CFLAGS="$_CFLAGS -march=pentium"
elif [ "$cpu_family" -ge "6" ] && expr $gcc_version '<' 3.1 >/dev/null; then
	_CFLAGS="$_CFLAGS -march=pentiumpro"
elif [ "$cpu_family" == "5" ]; then
	if [ "$cpu_model" != "4" ]; then
		_CFLAGS="$_CFLAGS -march=pentium"
	else
		_CFLAGS="$_CFLAGS -march=pentium-mmx" #No overlap with other vendors
	fi
elif [ "$cpu_family" == "6" ]; then
	if echo "$flags" | grep -vq cmov; then #gcc incorrectly assumes i686 always has cmov
		_CFLAGS="$_CFLAGS -march=pentium -mcpu=pentiumpro" #VIA CPUs exhibit this
	else
		if [ "$cpu_model" == "0" ] || [ "$cpu_model" == "1" ]; then
			_CFLAGS="$_CFLAGS -march=pentiumpro"
		elif [ "$cpu_model" -ge "3" ] && [ "$cpu_model" -le "6" ]; then #4=TM5600 at least
			_CFLAGS="$_CFLAGS -march=pentium2"
		elif [ "$cpu_model" -ge "7" ] && [ "$cpu_model" -le "11" ]; then #9 invalid
			_CFLAGS="$_CFLAGS -march=pentium3"
		fi
	fi
elif [ "$cpu_family" == "15" ]; then
	_CFLAGS="$_CFLAGS -march=pentium4"
fi
fi

if expr $gcc_version '>=' 3.1 >/dev/null; then
if echo "$flags" | grep -q sse2; then
	_CFLAGS="$_CFLAGS -mfpmath=sse -msse2"
elif echo "$flags" | grep -q sse; then
	_CFLAGS="$_CFLAGS -mfpmath=sse -msse"
fi
if echo "$flags" | grep -q mmx; then
	_CFLAGS="$_CFLAGS -mmmx"
fi
if echo "$flags" | grep -q 3dnow; then
	_CFLAGS="$_CFLAGS -m3dnow"
fi
fi

echo "$_CFLAGS"

j'ai testé ca sur mon athlon 64 et un celeron ... ca a l'air correcte sans pour autant aller jusqu'aux genre de cflags que lol2dol donne ^_^

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...