# [GCC] Duda con -mtune y -march (OK)

## sirope

HoLa!!

Hace unos dias comence a instalar desde Stage1, ejecute el bootstrap y luego emergi el sistema... Ya esta en Stage3 y estoy por instalar el Kernel, nada mas me vino una duda con el archivo make.conf....

En el Stage1 y Stage3 el archivo es diferente, al instalar desde Stage3 dice -march=i686, que yo lo reemplazo con -march=pentium3 ( :Sad:  que triste) Pero en stage1 es -mtune=i686... Debo agregar -march?? o debo agregar -march y borrar -mtune?? o debo dejarlo como esta?? 

Hay algo mas que arreglar al pasar de stage1 a 3???

Y gracias, un saludo  :Wink: Last edited by sirope on Mon Jul 23, 2007 10:46 pm; edited 1 time in total

----------

## i92guboj

 *sirope wrote:*   

> HoLa!!
> 
> Hace unos dias comence a instalar desde Stage1, ejecute el bootstrap y luego emergi el sistema... Ya esta en Stage3 y estoy por instalar el Kernel, nada mas me vino una duda con el archivo make.conf....
> 
> En el Stage1 y Stage3 el archivo es diferente, al instalar desde Stage3 dice -march=i686, que yo lo reemplazo con -march=pentium3 ( que triste) Pero en stage1 es -mtune=i686... Debo agregar -march?? o debo agregar -march y borrar -mtune?? o debo dejarlo como esta?? 
> ...

 

-march genéra código específico para una arquitectura. De forma que es imposible su ejecución en una arquitectura distinta. -mtune es una opción más genérica, que optimiza el código ejecutado para una arquitectura determinada, pero sin usar código específico de dicha arquitectura que impida su ejecución en arquitecturas simulares.

Es decir, usando -march=i686, obtendrás código objeto que no se puede ejecutar en un pentium classic o un 486, mientras que usando -mtune=i686 dicho código funcionará en cualquier x86, hasta un 386, aunque esté ligeramente optimizado para su ejecución en un 686. En el stage1 viene así porque de esta forma es stage es más genérico (recuerda que el stage1 es el mismo para todos, mientras que los stage3 están compilados para una cpu específica).

Por tanto, y resumiendo, si estás compilando para tu máquina, entonces puedes usar -march.

----------

## sirope

 *i92guboj wrote:*   

> 
> 
> Por tanto, y resumiendo, si estás compilando para tu máquina, entonces puedes usar -march.

 

Y borrar mtune..  :Wink:  OKi Gracias por el dato.

chao

----------

## Inodoro_Pereyra

Entonces usar los dos juntos no tiene sentido verdad? Es decir, en march va implícito mtune y con menos código redundante o entendí mal?

 *Sirope wrote:*   

> OKi Gracias por el dato.

 

Lo mismo digo.

Salud!

***EDITO***

La pregunta viene por que creo haber visto en algun make.conf las dos opciones juntas...

----------

## Neodraco

Podría tener sentido utilizar las dos juntas si algún ebuild filtrara march pero no mcpu. De esta forma se aplicaría la optimización de mcpu pero no la de march. Dicho esto, apunto que desconozco si algún ebuild hace tal cosa.

----------

## YosWinK

Vuestro equipo de documentación favorito tiene estas y muchas otras respuestas:

http://www.gentoo.org/doc/en/gcc-optimization.xml

 :Wink: 

----------

## Inodoro_Pereyra

 *Quote:*   

> Vuestro equipo de documentación favorito tiene estas y muchas otras respuestas: 
> 
> http://www.gentoo.org/doc/en/gcc-optimization.xml

 

Gracias!

----------

