![]() Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores | Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons |
|
Aprovechar la potencia de nuestro procesador x86 (14219 lectures)
Per Celso González, PerroVerd (http://mitago.net) Creado el 26/11/2001 00:40 modificado el 26/11/2001 20:46 |
Esto también tiene el problema que si compilamos para una arquitectura en concreto no podemos ejecutar ese programa en una máquina inferior, por ejemplo, no podemos instalar una distribución Mandrake en un 386 Aclarado esto, paso a explicar que la mayoría de distribuciones traen paquetes (rpm o deb) compilados para 386. El objetivo de este artículo es lograr construir paquetes optimizados para nuestra arquitectura RPMAquí no hace falta que explique nada, el amigo Gorka Olaizola escribió hace mucho tiempo un mini-howto para generar paquetes rpm DEB
En primer lugar leer el howto escrito para rpm ya que es la fuente de inspiración y hay algunos conceptos que se explican en él que yo no voy a tratar Debemos bajar las fuentes del paquete que queremos compilar, para esto debemos tener en el fichero Después del apt-get update de rigor haremos un apt-get source nombre_del_paquete en mi caso voy a emplear el paquete hello, que es un paquete para hacer pruebas Una vez que hemos bajado el paquete tendremos un directorio hello-x.xx y tres ficheros hello-x.xx (.diff.gz, .dsc y .orig.tar.gz), a nosotros nos interesa el fichero hello-x.xx/debian/rules, por lo que usando nuestro editor favorito lo abrimos Ahora viene la parte interesante, se trata de añadir a la variable CFLAGS o CXXFLAGS los paramétros de compilación de nuestra máquina. Para hacer esto debemos localizar la sección build: y añadir al make o al configure estas variables En el paquete hello el fichero rules original tiene esta pinta package=hello build: $(checkdir) ./configure --prefix=/usr $(MAKE) CFLAGS=-O2 LDFLAGS= touch build ...Por ejemplo voy a compilar para un Pentium de forma que el fichero rules me quedará así:
package=hello
build:
$(checkdir)
./configure --prefix=/usr
$(MAKE) CFLAGS="-O2 -fomit-frame-pointer \
-mpreferred-stack-boundary=2 -march=i586" -LDFLAGS=
touch build
...
Por último solo nos falta generar el paquete .deb correspondiente, para esto haremos nos iremos al directorio hello-x.xx y escribiremos dpkg-buildpackage después hacemos un cd .. y encontraremos el paquete hello-x.xx Notas FinalesParámetros de optimizaciónLos parámetros de optimización que se emplean son los mismos que usa el kernel 2.4.x. -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i486 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=k6 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=0 -malign-jumps=0 -malign-loops=0 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i586 Por último, si alguien conoce mejores parámetros de optimización agradecería me los comunicase Lista de enlaces de este artículo: |
|
E-mail del autor: celso _ARROBA_ mitago.net Podrás encontrar este artículo e información adicional en: http://bulma.net/body.phtml?nIdNoticia=1025 |