gcc utilise les indicateurs -mcpu = (ou -march =) pour produire du code optimisé pour un type de processeur particulier. Il existe une pléthore de variantes de bras, et la cible gcc Arm fournit également de nombreux types de FPU.
Quels indicateurs -mcpu = / - march = et -mfpu = sont les indicateurs natifs / appropriés à utiliser lors de la compilation de code C sur un Raspberry Pi?
gcc -mcpu=native -march=native -Q --help=target
me donne*** Error in
gcc ': double libre ou corruption (en haut): 0x0020c5a8 *** `, sur Raspbian Jessie 4.4.13-v7 +, armv7l.J'ai trouvé que cet ensemble devrait être optimal:
(-mfloat-abi = hard, bien sûr uniquement lorsque vous utilisez une distribution armhf)
la source
Je ne peux pas répondre au sujet du
-mfpu
drapeau, mais je suggère d'essayer ces derniers d'abord:Comme indiqué dans
GCC manual page related to ARM options
:Vous pouvez ensuite ajouter
-Q -v
à votreGCC flags
pour voir quelles optimisations sont activées et procéder à d'autres optimisations si nécessaire.Voici la sortie à l'aide
-march=native
d'un exemple de programme sur mon Raspberry Pi:la source
-march=native
c'est implémenté pourARM GCC
. Le Raspberry Pi peut être une architecture non prise en charge (et donc non détectée), dans ce cas,-march=native
n'a aucun effet.$ gcc -march=native test.c
cc1: error: bad value (native) for -march switch
il en dit de même dans votre sortie. (idem avec -mcpu également)-march=native
a également été introduit pourARM
.