2010-06-10 4 views
16

Gentoo Wiki m'a dit ce qui suit:Que fait exactement -march = natif?

Attention: GCC 4.2 et au-dessus de soutien -march = native. -march = natif applique des paramètres supplémentaires au-delà de -march, spécifiques à votre CPU. Sauf si vous avez une raison spécifique pour ne pas (par exemple distcc cross-compilation), vous devriez probablement utiliser en utilisant -march = natif, plutôt que tout ce qui est listé ci-dessous.

Quels sont ces paramètres supplémentaires?

Répondre

12

Nevermind.

$ cc -march=core2 -E -v - </dev/null 2>&1 | grep cc1 
/[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2 

$ cc -march=native -E -v - </dev/null 2>&1 | grep cc1 
/[...]/cc1 -E -quiet -v -iprefix /[...]/4.3.2/ - -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 -mtune=core2 

Je commence à aimer beaucoup cette option. -mcx16 et -msahf sont deux instructions CPU supplémentaires que gcc peut maintenant utiliser, qui n'étaient pas disponibles dans les Core2 précédents.

+0

Sur mon i7, il ajoute également '-mpopcnt -msse4.2 --param l2-cache-size = 8192' où POPCNT est une instruction CPU plutôt soignée. – Cubbi

+4

Bizarre. Livrez-vous la machine de construction avec votre logiciel? –

+10

@hans: lol, mais l'OP travaille avec Gentoo. Ce qui veut dire que personne ne distribue de binaires, seulement du code à compiler sur la machine sur laquelle il sera exécuté. –

Questions connexes