Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[CFLAGS] Cambiar CFLAGS
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Fri Sep 12, 2008 2:11 pm    Post subject: [CFLAGS] Cambiar CFLAGS Reply with quote

Hola!
Ultimamente escribo bastante por aquí y eso no es que sea demasiado bueno (si se trata de hacer nuevos post :P)
El caso es que actualmente uso estas CFLGAS en mi make.conf

Code:
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"


Pero he visto que para mi procesador que es este:

Code:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           T2300  @ 1.66GHz
stepping        : 8
cpu MHz         : 1667.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
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 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon
 bts pni monitor est tm2 xtpr
bogomips        : 3328.67
clflush size    : 64

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           T2300  @ 1.66GHz
stepping        : 8
cpu MHz         : 1667.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
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 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon
 bts pni monitor est tm2 xtpr
bogomips        : 3325.24
clflush size    : 6


Vi en GentooWiki-Safe_Cflags que para mi procesador serían más optimas estas:

Quote:

Intel Core Solo/Duo, Pentium Dual-Core T20xx/T21xx

vendor_id : GenuineIntel
cpu family : 6
model : 14, 22
model name : Genuine Intel(R) CPU TXXXX @ XXXGHz
model name : Intel(R) Celeron(R) CPU 220 @ 1.20GHz
model name : Intel(R) Celeron(R) CPU 4X0 @ XXXGHz

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

Notes:

* It has been confirmed by hongjiu.lu@intel.com that prescott is the correct microarchitecture to use with this CPU. http://article.gmane.org/gmane.comp.gcc.devel/83870
* The newer (eg. 420) Celeron-M processors are Core Solo based, not Pentium-M based. If your processor's family and model are 6 and 14, then you should use the -march=prescott option.
* Both the Celeron 4x0 and 220 run fine with Processor family (Pentium M) selected in the kernel.


¿Simplemente las cambio en el make.conf y a rular? Puede dañar el sistema? Tengo que recompilar todas las aplicaciones? Quería que me informarais un poco acerca de esto. Gracias!
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Fri Sep 12, 2008 2:34 pm    Post subject: Reply with quote

en mi opinión cambiar el -march implica un cambio radical en el comportamiento del compilador, por lo que si, tendrás que recompilar todo el sistema para evitar problemillas.

Creo que hay una guía oficial para esto pero yo lo hago de la siguiente manera :

- cambio los valores en el make.conf
- recompilo / actualizo gcc
- cambio al nuevo compilador ( si procede)
- compilo binutils, linux-headers, glibc, libtool, etc y nuevamente gcc
- compilo todo el sistema

Veo que tienes un core, no ? Si es así y ya puestos a recompilar, te sugeriría que miraras el gcc-4.3.x que viene con un -march=core2, específico para tu cpu. No es que vayas a notar mucha diferencia salvo en un par de aplicaciones concretas, pero por si te interesa mirarlo. Además, gcc-4.3 posiblemente será el siguiente compilador estable en gentoo así que creo que vale la pena pasarse.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Fri Sep 12, 2008 7:53 pm    Post subject: Reply with quote

Gracias por la respuesta.

He leido en GCC - Changes 4.3 :

Quote:

New Targets and Target Specific Improvements
IA-32/x86-64

* Tuning for Intel Core 2 processors is available via -mtune=core2 and -march=core2.
* Tuning for AMD Geode processors is available via -mtune=geode and -march=geode.



¿Esto no querrá decir que es para 64 bits porque mi pc es de 32 bits? Aún así no sé si arriesgarme a instalar esa versión de gcc ahora o quizá esperarme a que sea estable. Aunque la verdad recompilar el sistema me parece una tarea muy ardua para hacerla...En estos momentos no sé si investigar o seguír el KISS principle :)
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Fri Sep 12, 2008 8:16 pm    Post subject: Reply with quote

Tu procesador es de 64 bit, puedes usar estos Cflags:
http://gentoo-wiki.com/Safe_Cflags#Intel_Core_2_Duo.2FQuad_.2F_Xeon_51xx.2F53xx.2C_Pentium_Dual-Core_T23xx.2B.2FExxxx
_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Fri Sep 12, 2008 8:32 pm    Post subject: Reply with quote

¿Qué es de 64 bits? Yo siempre he pensado que es de 32

Mi procesador es el T2300 que viene en esta página

Y según la salida del /proc/cpuinfo yo creo que me correspondería estos: http://gentoo-wiki.com/Safe_Cflags#Intel_Core_Solo.2FDuo.2C_Pentium_Dual-Core_T20xx.2FT21xx, Concuerda en Familia, Modelo...todo, di que los cflags serían los mismos para la versión 32bits...

No sé, a ver si me puedes dar una explicación mejor de lo que opinas al respecto. Gracias
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Fri Sep 12, 2008 8:46 pm    Post subject: Reply with quote

Tu modelo es un T2XX y concuerda mejor con los que te apunté antes, puedes confirmarlo en la siguiente hoja de datos de intel:
http://www.intel.com/products/centrino/duo/310199.pdf
_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Fri Sep 12, 2008 11:45 pm    Post subject: Reply with quote

Últimamente ando algo ocupado y además no estoy al día en lo que a cpus se refiere. Pero hasta donde yo se creo que las cpus de 64 bits se identifican entre otras cosas por el flag "lm", que ésta no tiene. Sin embargo, como ya digo, no estoy al día en el asunto. La forma más sencilla de comprobarlo es descargar un livecd de 64 e intentar arrancarlo.

Sobre lo de recompilar: no es estrictamente necesario, aunque en algunos paquetes si puede haber problemas. Yo recompilaría al menos system. Lo demás puedes dejar que se vaya actualizando poco a poco, o recompilarlo también si lo deseas.
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Sat Sep 13, 2008 12:49 am    Post subject: Reply with quote

La verdad es que sí, se trata de un Intel Centrino Duo con esos chipset para wireless y el procesador es ese. Al concordar la Familia y el Modelo de la gentoo-wiki creí que se referíría al otro. Me voy a 'arriesgar' y a instalar gcc-4.3.1 y a poner esos CFLAGS, les pondré los pasos que tengo pensado hacer y cuando me confirmen si creen que están bien o no lo hago.

1. Actualizar Gcc de 4.1.2 a ~4.3.1 (lo desenmascaro y emerJo)
2. (borrar versión 4.1.2) de GCC con emerge -C gcc-4.1.2
3. Actualizar /etc/make.conf
Pasar de CFLAGS="-O2 -march=i686 -pipe" => CFLAGS="-02 -march=core2 -pipe"
4. emerge -uNDav system
5. Dejar que los demas paquetes se vayan recompilando según se vayan actualizando

¿Qué les parece?
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Sat Sep 13, 2008 12:55 am    Post subject: Reply with quote

chaim wrote:
La verdad es que sí, se trata de un Intel Centrino Duo con esos chipset para wireless y el procesador es ese. Al concordar la Familia y el Modelo de la gentoo-wiki creí que se referíría al otro. Me voy a 'arriesgar' y a instalar gcc-4.3.1 y a poner esos CFLAGS, les pondré los pasos que tengo pensado hacer y cuando me confirmen si creen que están bien o no lo hago.

1. Actualizar Gcc de 4.1.2 a ~4.3.1 (lo desenmascaro y emerJo)
2. (borrar versión 4.1.2) de GCC con emerge -C gcc-4.1.2
3. Actualizar /etc/make.conf
Pasar de CFLAGS="-O2 -march=i686 -pipe" => CFLAGS="-02 -march=core2 -pipe"
4. emerge -uNDav system
5. Dejar que los demas paquetes se vayan recompilando según se vayan actualizando

¿Qué les parece?


Yo no borraría el compilador antiguo. Si algo falla sería bueno tener un compilador que sabes que funciona. Si no, tendrías que reinstalarlo a mano desde binarios, o reinstalar Gentoo.
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Sat Sep 13, 2008 1:06 am    Post subject: Reply with quote

Quote:
Yo no borraría el compilador antiguo. Si algo falla sería bueno tener un compilador que sabes que funciona. Si no, tendrías que reinstalarlo a mano desde binarios, o reinstalar Gentoo.


¿Y cómo le digo que compile con ~gcc-4.3.1 en vez de con gcc-4.2.1?

[ebuild NS ] sys-devel/gcc-4.3.1 USE="fortran gtk mudflap nls openmp (-altivec) -bootstrap -build -doc -gcj (-hardened) -ip28 -ip32r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 57,610 kB

Estarían bien estas use para el gcc?

Gracias por la respuesta tan rápida
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Sat Sep 13, 2008 1:16 am    Post subject: Reply with quote

chaim wrote:
Quote:
Yo no borraría el compilador antiguo. Si algo falla sería bueno tener un compilador que sabes que funciona. Si no, tendrías que reinstalarlo a mano desde binarios, o reinstalar Gentoo.


¿Y cómo le digo que compile con ~gcc-4.3.1 en vez de con gcc-4.2.1?


Code:
gcc-config -l
gcc-config <numerito>
env-update
source /etc/profile


Las flags están bien, lo que actives o desactives dependerá de tus necesidades concretas. Ninguna de ellas es crítica (las que lo son están fijas en tu perfil).
Back to top
View user's profile Send private message
ekz
l33t
l33t


Joined: 21 Jun 2006
Posts: 994
Location: Temuco - Chile

PostPosted: Sat Sep 13, 2008 1:51 am    Post subject: Reply with quote

chaim wrote:

3. Actualizar /etc/make.conf
Pasar de CFLAGS="-O2 -march=i686 -pipe" => CFLAGS="-02 -march=core2 -pipe"


Sólo apuntar que lo correcto es -O2 "menos o dos", no "menos cero dos".

Saludos!
_________________
Mi tumblelog
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Sat Sep 13, 2008 9:20 am    Post subject: Reply with quote

chaim wrote:
La verdad es que sí, se trata de un Intel Centrino Duo con esos chipset para wireless y el procesador es ese. Al concordar la Familia y el Modelo de la gentoo-wiki creí que se referíría al otro. Me voy a 'arriesgar' y a instalar gcc-4.3.1 y a poner esos CFLAGS, les pondré los pasos que tengo pensado hacer y cuando me confirmen si creen que están bien o no lo hago.

1. Actualizar Gcc de 4.1.2 a ~4.3.1 (lo desenmascaro y emerJo)
2. (borrar versión 4.1.2) de GCC con emerge -C gcc-4.1.2
3. Actualizar /etc/make.conf
Pasar de CFLAGS="-O2 -march=i686 -pipe" => CFLAGS="-02 -march=core2 -pipe"
4. emerge -uNDav system
5. Dejar que los demas paquetes se vayan recompilando según se vayan actualizando

¿Qué les parece?

Ten en cuenta que cambiar de compilador no hará que tu sistema pase mágicamente a 64 bit, tu variable CHOST="i686-pc-linux-gnu" indica que tienes un sistema de 32 bit y seguirá siendo así, pero cambiar de CHOST no es algo trivial y los que lo han intentado suelen aconsejar luego hacer una instalación limpia.
_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Sat Sep 13, 2008 9:38 am    Post subject: Reply with quote

Ya está hecho, lo único que me falta sería recompilar el system, pero un emerge -uDNav system no me devuelve nada porque está todo actualizado. ¿Qué tengo que poner?
Quote:

Ten en cuenta que cambiar de compilador no hará que tu sistema pase mágicamente a 64 bit, tu variable CHOST="i686-pc-linux-gnu" indica que tienes un sistema de 32 bit y seguirá siendo así, pero cambiar de CHOST no es algo trivial y los que lo han intentado suelen aconsejar luego hacer una instalación limpia.

-> La verdad es que no buscaba en un principio pasar a 64bits (ni sabía que mi procesador tenía tal capacidad) si no simplemente optimizar un poco la compilación sin que acarreara graves problemas, si eso ya para otra instalación o para más adelante :)

Quote:
Sólo apuntar que lo correcto es -O2 "menos o dos", no "menos cero dos".

Saludos!

-> Sí, se me fue la mano :) gracias
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
Coghan
l33t
l33t


Joined: 25 Jul 2007
Posts: 789
Location: Gran Canaria (Spain)

PostPosted: Sat Sep 13, 2008 10:56 am    Post subject: Reply with quote

chaim wrote:
Ya está hecho, lo único que me falta sería recompilar el system, pero un emerge -uDNav system no me devuelve nada porque está todo actualizado. ¿Qué tengo que poner?
Code:
emerge -e system

_________________
Salu2.
Alguien, muy acertadamente, dijo una vez wrote:
'El buen informático es como un bibliotecario, no lo sabe todo, pero sabe donde buscarlo'
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Sat Sep 13, 2008 11:14 am    Post subject: Reply with quote

Coghan wrote:
chaim wrote:
Ya está hecho, lo único que me falta sería recompilar el system, pero un emerge -uDNav system no me devuelve nada porque está todo actualizado. ¿Qué tengo que poner?
Code:
emerge -e system


Ok gracias, ya está compilando :)
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
ColdWind
Retired Dev
Retired Dev


Joined: 08 Dec 2005
Posts: 119
Location: Valencia, Spain

PostPosted: Tue Sep 16, 2008 9:55 am    Post subject: Reply with quote

No la lieis. core2 es para procesadores Core 2 Duo en instalaciones de 64 bits.

chaim no tiene ni un core2 ni una instalación de 64 bits, así que probablemente quiere usar -march=prescott y punto.
Back to top
View user's profile Send private message
gringo
Advocate
Advocate


Joined: 27 Apr 2003
Posts: 3793

PostPosted: Tue Sep 16, 2008 10:14 am    Post subject: Reply with quote

Quote:
No la lieis. core2 es para procesadores Core 2 Duo en instalaciones de 64 bits.
chaim no tiene ni un core2 ni una instalación de 64 bits, así que probablemente quiere usar -march=prescott y punto.


pues acabo de mirar la documentación del gcc ( donde pone exactamente : " [...]Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support. [...]) así que tienes toda la razón, no sé porque pensaba que core2 era válido para ambos x86 y amd64 y que el CHOST indicaba al toolchain si era de 64 o 32 bits ... sorry por la confusión.

saluetes
_________________
Error: Failing not supported by current locale
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Tue Sep 16, 2008 10:27 am    Post subject: Reply with quote

No tengo experiencia con core2, pero puedo asegurar que -march=k8 funciona con un CHOST de 32 bits, no veo por qué con core2 tendría que ser distinto.
Back to top
View user's profile Send private message
ColdWind
Retired Dev
Retired Dev


Joined: 08 Dec 2005
Posts: 119
Location: Valencia, Spain

PostPosted: Tue Sep 16, 2008 10:29 am    Post subject: Reply with quote

i92guboj wrote:
No tengo experiencia con core2, pero puedo asegurar que -march=k8 funciona con un CHOST de 32 bits, no veo por qué con core2 tendría que ser distinto.


Es posible. Supongo que los problemas están viniendo cuando la gente cambia el CHOST a x86_64 con sus profiles de x86. En cualquier caso, mejor ir a lo seguro a la hora de aconsejar a principiantes.
Back to top
View user's profile Send private message
i92guboj
Bodhisattva
Bodhisattva


Joined: 30 Nov 2004
Posts: 10315
Location: Córdoba (Spain)

PostPosted: Tue Sep 16, 2008 10:48 am    Post subject: Reply with quote

ColdWind wrote:
i92guboj wrote:
No tengo experiencia con core2, pero puedo asegurar que -march=k8 funciona con un CHOST de 32 bits, no veo por qué con core2 tendría que ser distinto.


Es posible. Supongo que los problemas están viniendo cuando la gente cambia el CHOST a x86_64 con sus profiles de x86. En cualquier caso, mejor ir a lo seguro a la hora de aconsejar a principiantes.


Sip. El cambio de CHOST es algo problemático incluso dentro la gama de 32 bits. El cambio a x86_64 es definitivamente algo que no vale la pena, porque de todas formas hay que recompilar todo. Es más sencillo empezar desde cero.

En cuanto a lo seguro, como ya dije en el otro hilo: la wiki no es oficial. Es un recurso de mucho valor, pero realmente su contenido no tiene valor oficial alguno en lo que a Gentoo respecta. Si es cierto que los flags en esa página funcionan sin problemas basándonos en la experiencia de miles de usuarios. Lo cual no quiere decir que otras combinaciones no sean igualmente estables.
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Tue Sep 16, 2008 1:13 pm    Post subject: Reply with quote

Bueno acabo de leer que habeis estado comentando sobre el tema que inicié hace poco, así resumen yo puse core2 y recompilé system y la verdad no he notado ninguna diferencia palpable, este tema se me queda un poco grande y lo voy entendiendo de poco en poco. Revisaré los post con más tiempo y os diré que me parece a mí.

Un Saludo
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
chaim
Apprentice
Apprentice


Joined: 11 Jul 2008
Posts: 172

PostPosted: Mon Oct 06, 2008 8:40 am    Post subject: Reply with quote

Sé que se trata de un post un poco atrasado, pero lo he estado observando y viendo enlaces y saco de conclusión: No tengo ni idea! Cuando cambié a -march=core2 y recompilé el sistema no noté nada, todo funcionaba bien, y ahora viendo las respuestas de ColdWind no sé si dejarlo en -march=core2 o en -march=prescott.
_________________
Mi Blog - Universo Binario
Back to top
View user's profile Send private message
achaw
l33t
l33t


Joined: 09 Aug 2006
Posts: 689
Location: Argentina

PostPosted: Mon Oct 06, 2008 12:02 pm    Post subject: Reply with quote

chaim wrote:
Sé que se trata de un post un poco atrasado, pero lo he estado observando y viendo enlaces y saco de conclusión: No tengo ni idea! Cuando cambié a -march=core2 y recompilé el sistema no noté nada, todo funcionaba bien, y ahora viendo las respuestas de ColdWind no sé si dejarlo en -march=core2 o en -march=prescott.


Y no creo que notes nada, las CFLAGS no son magicas...posiblemente notes mejoras en hardware antiguo, pero en un pc potente como el tuyo, las mejoras no son palpables a simple vista. No te vuelvas loco con las CFLAGS, todos tuvimos la fiebre, dedicale ese tiempo a otras cosas.

Saludos
_________________
Usuario GNU/Linux #398133
Fluxbox + ROX
NO al canon!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum