gcc toma los indicadores -mcpu = (o -march =) para producir código optimizado para un tipo de CPU en particular. Hay una gran cantidad de variantes de brazo, y el objetivo de brazo gcc también proporciona numerosos tipos de FPU.
¿Qué -mcpu = / - march = flags y -mfpu = flags son los apropiados / nativos para usar al compilar código C en una Raspberry Pi?

gcc -mcpu=native -march=native -Q --help=targetme da*** Error ingcc ': doble libre o corrupción (arriba): 0x0020c5a8 *** `, en Raspbian Jessie 4.4.13-v7 +, armv7l.Encontré que este conjunto debería ser el óptimo:
(the -mfloat-abi = hard, por supuesto solo cuando usas una distribución armhf)
fuente
No puedo responder sobre la
-mfpubandera, pero sugeriría probar esto primero:Como se informa en
GCC manual page related to ARM options:Luego puede agregar
-Q -va suGCC flagspara ver qué optimizaciones están habilitadas y continuar con otras optimizaciones si es necesario.Este es el resultado que se usa
-march=nativecon un programa de muestra en mi Raspberry Pi:fuente
-march=nativeestá implementado paraARM GCC. La Raspberry Pi puede ser una arquitectura no compatible (y por lo tanto no detectada), en ese caso-march=nativeno tiene ningún efecto.$ gcc -march=native test.ccc1: error: bad value (native) for -march switchdice lo mismo en su salida. (lo mismo con -mcpu también)-march=nativese ha introducidoARM.