View previous topic :: View next topic |
Author |
Message |
sessa n00b
Joined: 06 Apr 2008 Posts: 6
|
Posted: Sun Apr 06, 2008 5:01 pm Post subject: Verständnisfrage CLFAG CHOST |
|
|
Hallo,
ich bin gentoo newbie und lese bereits einiger Zeit nur hab ich noch immer nicht zu 100 % verstanden wie die beiden genau zusammenhängen.
Wenn ich das richtig verstanden habe ist wird mit der CLFAG der Compiler angewiesen welche Optimierungen genutzt werden.
z.B. CFLAGS="-Os -march=athlon64 -pipe -fomit-frame-pointer"
Was ja bedeutet das alle Athlon64 Optimierungen genutzt werden und wenn dann die CHOST
z.B. CHOST="i586-pc-linux-gnu"
so aussieht, die 32 Bit Architektur verwendet wird und auf dem I586 läuft aber auch 3DNOW 3DNOWEXT SSE SSE2 unterstützt wird.
Somit kann ich doch nach erfolgreichem neukompilieren der Quellen ohne weiteres den CHOST auf pentium-m (ist der mit den meisten funktionen und halt SSE2) ändern und muss nur emerge -avt gcc und emerge -avt python ausführen.
Hab ich das so richtig verstanden und wenn ja bringt das überhaupt einen Geschwindigkeitsvorteil?
Danke im voraus für die Hilfe.
Gruß sessa |
|
Back to top |
|
|
sirro Veteran
Joined: 20 Jul 2003 Posts: 1472 Location: aachen.nrw.de.eu
|
Posted: Sun Apr 06, 2008 5:10 pm Post subject: |
|
|
CHOST sollte man eigentlich gar nicht ändern.
Wenn du auf Pentium M wechseln willst, könntest du zuerst auf -march=i686 gehen und dann wenn der Pentium M eingebaut ist die entsprechende march setzen. |
|
Back to top |
|
|
Max Steel Advocate
Joined: 12 Feb 2007 Posts: 2272 Location: My own world! I and Gentoo!
|
Posted: Sun Apr 06, 2008 5:14 pm Post subject: |
|
|
Moment, die CHost sollte man nie ändern, sie beschreibt die Architektur des Systems.
Was du mit auf pentium-m ändern womöglich meinst ist die CFlag Variable. und da -march, allerdings macht es auch PRobleme wenn die CPU ein AMD Athlon 64.
Also CHost nicht anfassen, außer du weißt was du tust und [1] beachtest.
Allerdings wäre es viel einfacher eine neuinstallation zum ändern der CHost zu machen.
die CFlags kannst du immer ändern, auch hier gibt es sicheres und unsicheres wobei ich dashier empfehle [2]
CHost beschreibt die Architektur des Systems
CFlags dagegen wie du schon richtig beschriebst die Optimierungen für den Compiler die er anwendet, es gibt Optimierungen die bringen etwas, schon allein hier im deutschen Teil gibt es massig Diskussionsthreads darüber.
Wobei ich für einen Athlon 64 dashier empfehle:
Code: | -O2 -march=athlon64 -pipe -fomit-frame-pointer |
Wenn du auf einen Pentium-m wechselst (warum auch immer) dann würde ich erst auf i686 runter gehen mit den Optimierungen und nach dem einbau, bzw, umzug aufs Laptop oder sonstwas auf die aktuelle CPU upgraden.
Laut [2]
Code: | -march=pentium-m -O2 -pipe -fomit-frame-pointer |
Aber da würde ich immer selber nachschauen und auch cat /proc/cpuinfo zu rate ziehen.
[1] http://gentoo-wiki.com/HOWTO_change_CHOST_relatively_safely
[2] http://gentoo-wiki.com/Safe_Cflags
PS: Da war einer schneller.
//Endgültige Fassung! _________________ mfg
Steel
___________________
Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Last edited by Max Steel on Sun Apr 06, 2008 5:27 pm; edited 2 times in total |
|
Back to top |
|
|
sessa n00b
Joined: 06 Apr 2008 Posts: 6
|
Posted: Sun Apr 06, 2008 5:18 pm Post subject: |
|
|
wow schnelle antwort
@ sirro
Ok, das hatte ich auch gelesen, nur ging es mir darum, wenn ich eh alle Packete mit march-Athlon64 erstellt hab und bei der Architektur bei 32 bit bleiben möchte kann ich doch auch den CHOST ändern. i586 Dient dann nur noch zur abwärtskompatibilität und der pentium-m ist der 32 Bit Prozessor ist der am meisten funktionen meines Athlon64 hat.
@ max steel
Wenn ich das jetzt richtig verstanden hab ist der CHOST immer der kleinste gemeinsame nenner und die CFLAGS sind Erweiterungen. Dann brauch ich auch den CHOST nicht ändern wenn eh das vom CFLAGS immer mit dabei ist.
Ich dachte nur es wäre für die Performance besser wenn ich eh mit den CFLAGS kompiliere den CHOST mit den meisten Erweiterungen nehme die der Ahtlon64 eh alle integriert hat. Die Anleitung hatte ich gelesen, ich hab nur nirgends eine Erklärung gefunden wie beide zusammenhängen. nach ca. 2,5 Std. Suche dachte ich, ich frag einfach.
Danke und gruß sessa
Last edited by sessa on Sun Apr 06, 2008 5:29 pm; edited 1 time in total |
|
Back to top |
|
|
s.hase Apprentice
Joined: 19 Nov 2004 Posts: 293
|
Posted: Sun Apr 06, 2008 5:25 pm Post subject: |
|
|
sessa wrote: |
Ok, das hatte ich auch gelesen, nur ging es mir darum, wenn ich eh alle Packete mit march-Athlon64 erstellt hab und bei der Architektur bei 32 bit bleiben möchte kann ich doch auch den CHOST ändern. i586 Dient dann nur noch zur abwärtskompatibilität und der pentium-m ist der 32 Bit Prozessor ist der am meisten funktionen meines Athlon64 hat.
|
Wozu möchtest Du den die CFLAGS ändern? Wenn Du einen Athlon64 hast lass das so, was willst Du dann mit CFLAGS für nen Pentium-M? Der CHOST sollte bei Dir außerdem eigentlich so aussehen:
Code: |
CHOST="i686-pc-linux-gnu"
|
Oder hast Du irgendwie vor den Prozessor zu tauschen? Wenn ja ist der Weg über die CFLAGS von nem Pentium-M eigentlich auch unnötig. Alle neueren Prozessoren sollten damit auch zurecht kommen. |
|
Back to top |
|
|
sessa n00b
Joined: 06 Apr 2008 Posts: 6
|
Posted: Sun Apr 06, 2008 5:33 pm Post subject: |
|
|
Hi, ich wollte den Pentium-M als CHOST nutzen, da der fast alle Erweiterungen des Athlon64 hat aber noch 32 bit nutzt. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1978 Location: Schweiz
|
Posted: Sun Apr 06, 2008 5:48 pm Post subject: |
|
|
Ich finde es irgendwie unsinnig ein 32bit System zu bauen wenn man die gelegenheit hat sich ein 64bit System zu bauen.
Das ist als ob man einen alten Knacker hinter das Steuer eines Rennautos setzt und dieser dann nur die Mindestgeschwindigkeit fährt. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
s.hase Apprentice
Joined: 19 Nov 2004 Posts: 293
|
Posted: Sun Apr 06, 2008 6:15 pm Post subject: |
|
|
sessa wrote: | Hi, ich wollte den Pentium-M als CHOST nutzen, da der fast alle Erweiterungen des Athlon64 hat aber noch 32 bit nutzt. |
Pentium-M gibt es nicht als CHOST, außerdem ist "i686-pc-linux-gnu" auch 32-bit. Guck doch bitte noch einmal genauer in den schon geposteten Link. Übernimm die Einstellung für 32-bit und fertig. |
|
Back to top |
|
|
sessa n00b
Joined: 06 Apr 2008 Posts: 6
|
Posted: Sun Apr 06, 2008 6:41 pm Post subject: |
|
|
Hi,
danke nochmal für die Hilfe.
Sorry stimmt es gibt kein pentium-m als CHOST, da hat mein Gehirn wohl irgendwie nach dem ganzen suchen und lesen alles durcheinander geworfen . So ergibt das jetzt auch alles viel mehr sinn.
Ich habe mich für 32 bit und nicht für 64 bit entschieden, da ich eh keine 4Gb RAM hab und ich so keine Vorteile sehe die 64 Bit Version zu verwenden.
Also sollte es so richtig sein für SSE und 3dnow erweiterungen und 32 Bit
CFLAGS="-Os -march=athlon64 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
gruß sessa |
|
Back to top |
|
|
Max Steel Advocate
Joined: 12 Feb 2007 Posts: 2272 Location: My own world! I and Gentoo!
|
Posted: Mon Apr 07, 2008 1:13 pm Post subject: |
|
|
richtig allerdings würde ich dir empfehlen statt -Os, das man normalerweise für kleinere Rechner (Festplattenplatz/LEistung) oder embedded Systeme verwendet, -O2 verwenden.
Außerdem für sse 3dnow 3dnowext sse2 mmx mmxext weiß der Geierr gibt es als allgemeine Useflags die in die USE kommen.
siehe dazu:
/usr/portage/profiles/use.desc
/usr/portage/profiles/use.local.desc _________________ mfg
Steel
___________________
Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2) |
|
Back to top |
|
|
|