View previous topic :: View next topic |
Author |
Message |
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Fri Sep 12, 2008 2:11 pm Post subject: [CFLAGS] Cambiar CFLAGS |
|
|
Hola!
Ultimamente escribo bastante por aquí y eso no es que sea demasiado bueno (si se trata de hacer nuevos post )
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 |
|
|
gringo Advocate
Joined: 27 Apr 2003 Posts: 3793
|
Posted: Fri Sep 12, 2008 2:34 pm Post subject: |
|
|
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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Fri Sep 12, 2008 7:53 pm Post subject: |
|
|
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 |
|
|
Coghan l33t
Joined: 25 Jul 2007 Posts: 789 Location: Gran Canaria (Spain)
|
|
Back to top |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
|
Back to top |
|
|
Coghan l33t
Joined: 25 Jul 2007 Posts: 789 Location: Gran Canaria (Spain)
|
Posted: Fri Sep 12, 2008 8:46 pm Post subject: |
|
|
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 |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Fri Sep 12, 2008 11:45 pm Post subject: |
|
|
Ú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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Sat Sep 13, 2008 12:49 am Post subject: |
|
|
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 |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Sat Sep 13, 2008 12:55 am Post subject: |
|
|
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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Sat Sep 13, 2008 1:06 am Post subject: |
|
|
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 |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Sat Sep 13, 2008 1:16 am Post subject: |
|
|
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 |
|
|
ekz l33t
Joined: 21 Jun 2006 Posts: 994 Location: Temuco - Chile
|
Posted: Sat Sep 13, 2008 1:51 am Post subject: |
|
|
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 |
|
|
Coghan l33t
Joined: 25 Jul 2007 Posts: 789 Location: Gran Canaria (Spain)
|
Posted: Sat Sep 13, 2008 9:20 am Post subject: |
|
|
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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Sat Sep 13, 2008 9:38 am Post subject: |
|
|
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 |
|
|
Coghan l33t
Joined: 25 Jul 2007 Posts: 789 Location: Gran Canaria (Spain)
|
Posted: Sat Sep 13, 2008 10:56 am Post subject: |
|
|
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? |
_________________ 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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Sat Sep 13, 2008 11:14 am Post subject: |
|
|
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? |
|
Ok gracias, ya está compilando _________________ Mi Blog - Universo Binario |
|
Back to top |
|
|
ColdWind Retired Dev
Joined: 08 Dec 2005 Posts: 119 Location: Valencia, Spain
|
Posted: Tue Sep 16, 2008 9:55 am Post subject: |
|
|
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 |
|
|
gringo Advocate
Joined: 27 Apr 2003 Posts: 3793
|
Posted: Tue Sep 16, 2008 10:14 am Post subject: |
|
|
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 |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Tue Sep 16, 2008 10:27 am Post subject: |
|
|
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 |
|
|
ColdWind Retired Dev
Joined: 08 Dec 2005 Posts: 119 Location: Valencia, Spain
|
Posted: Tue Sep 16, 2008 10:29 am Post subject: |
|
|
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 |
|
|
i92guboj Bodhisattva
Joined: 30 Nov 2004 Posts: 10315 Location: Córdoba (Spain)
|
Posted: Tue Sep 16, 2008 10:48 am Post subject: |
|
|
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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Tue Sep 16, 2008 1:13 pm Post subject: |
|
|
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 |
|
|
chaim Apprentice
Joined: 11 Jul 2008 Posts: 172
|
Posted: Mon Oct 06, 2008 8:40 am Post subject: |
|
|
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 |
|
|
achaw l33t
Joined: 09 Aug 2006 Posts: 689 Location: Argentina
|
Posted: Mon Oct 06, 2008 12:02 pm Post subject: |
|
|
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 |
|
|
|