•
Flags de compilación
Al compilar un determinado programa debemos tener en cuenta los flags del gcc para que se adapte a nuestro sistemas. Vamos a ver un ejemplo.
Primero de todo debemos ver que CPU tenemos. Podemos hacer esto mediante /proc/cpuinfo:
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 22 model name : Intel(R) Celeron(R) CPU 220 @ 1.20GHz stepping : 1 cpu MHz : 1200.036 cache size : 512 KB fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss tm pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good pni monitor ds_cpl tm2 ssse3 cx16 xtpr lahf_lm bogomips : 2401.76 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
Las partes que nos interesan son:
vendor_id : GenuineIntel cpu family : 6 model : 22 model name : Intel(R) Celeron(R) CPU 220 @ 1.20GHz
A continuación mediante la gentoo-wiki podemos ver los “Safe flags“. Mediante estos obtendremos un programa optimizado para nuestra CPU sin miedo a que optimizaciones demasiado agresivas provoquen fallos en el programa.
Para el caso del ejemplo, podemos ver que encaja con “Intel Core Solo/Duo, Pentium Dual-Core T20xx/T21xx, por lo que definiriamos los siguientes flags:
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
Relacionados
Imprimir
Deja un comentario: