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=target
me da*** Error in
gcc ': 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
-mfpu
bandera, pero sugeriría probar esto primero:Como se informa en
GCC manual page related to ARM options
:Luego puede agregar
-Q -v
a suGCC flags
para ver qué optimizaciones están habilitadas y continuar con otras optimizaciones si es necesario.Este es el resultado que se usa
-march=native
con un programa de muestra en mi Raspberry Pi:fuente
-march=native
está implementado paraARM GCC
. La Raspberry Pi puede ser una arquitectura no compatible (y por lo tanto no detectada), en ese caso-march=native
no tiene ningún efecto.$ gcc -march=native test.c
cc1: error: bad value (native) for -march switch
dice lo mismo en su salida. (lo mismo con -mcpu también)-march=native
se ha introducidoARM
.