Kernel für diverse CPU (x86)
Hallo, kann ich den Linux-Kernel so compilieren, daß der gcc Code für eine Athlon K7 CPU erzeugt? Geht das durch eine bestimmte Parameterübergabe an das "make bzImage"-statement? Oder wie auch immer...? Danke für jeden Tip! Gruß Dejan
Moin,
* Dejan Milosavljevic
kann ich den Linux-Kernel so compilieren, daß der gcc Code für eine Athlon K7 CPU erzeugt? Nanu? Wird das nicht bei 'make [x|menu]?config' gefragt?
Thorsten -- Unterschätze nie die Macht dummer Leute, die einer Meinung sind. - Kurt Tucholsky
Hmmmm, jetzt wo Du es sagst.....ich glaube um so länger ich mich mit der Materie beschäftige, desto mehr entwickelt sich ein blinder Fleck im Auge für Offensichtliches.... :-/ Sorry für die nutzlose Frage. Du hast natürlich recht. Aber wenn wir schon bei Thema sind: Hast Du eine Ahnung mit welchem Parameter dem gcc mitgeteilt wird für eine bestimmte Architektur zu compilieren? Ich glaube da gibt es so etwas wie --march oder so ähnlich?? Kann das sein? Gruß Dejan Thorsten Haude wrote:
Moin,
* Dejan Milosavljevic
[01-12-07 17:05]: kann ich den Linux-Kernel so compilieren, daß der gcc Code für eine Athlon K7 CPU erzeugt?
Nanu? Wird das nicht bei 'make [x|menu]?config' gefragt?
Thorsten
On Fri, 07 Dec 2001, Dejan Milosavljevic wrote:
Aber wenn wir schon bei Thema sind: Hast Du eine Ahnung mit welchem Parameter dem gcc mitgeteilt wird für eine bestimmte Architektur zu compilieren? Ich glaube da gibt es so etwas wie --march oder so ähnlich?? Kann das sein?
Ja. Siehe info gcc -> Invoking GCC -> Submodel Options -> i386 Options Ich verwende hier: "-march=athlon -mcpu=athlon -malign-functions=4 -fschedule-insns2 -mwide-multiply", das ist allerdings ein mit dem athlon Patch versehener pgcc-2.95.3 (welcher wiederum ein ge- patchter gcc 2.95.2 ist), der normale gcc 2.9x kennt das nicht, bei dem kann man -march=i686 -mcpu=i686 verwenden. Der gcc 3.x kennt AFAIK dann auch "athlon" als Prozessor... -dnh -- 45: IRQ Internet Relay Quak (Peter Berlich)
* David Haller [Sat, 8 Dec 2001 02:31:00 +0100]:
-march=athlon -mcpu=athlon
Was Overkill ist, denn -march=athlon impliziert -mcpu=athlon ;-) Philipp -- Linux wurde nur möglich, weil 20 Jahre Betriessystemforschung sorgfältig studiert, analysiert, diskutiert und verworfen wurden. Ingo Molnar auf linux-kernel
On Sat, 08 Dec 2001, Philipp Thomas wrote:
* David Haller [Sat, 8 Dec 2001 02:31:00 +0100]:
-march=athlon -mcpu=athlon
Was Overkill ist, denn -march=athlon impliziert -mcpu=athlon ;-)
Ups, stimmt das -mcpu ist mit -march ueberfluessig. Da hab ich was verwechselt ;) ,----[ info gcc ] | `-mcpu=CPU TYPE' | [..] | While picking a specific CPU TYPE will schedule things | appropriately for that particular chip, the compiler will not | generate any code that does not run on the i386 [..] | | `-march=CPU TYPE' | Generate instructions for the machine type CPU TYPE. [..] | `-march=CPU TYPE' implies `-mcpu=CPU TYPE'. `---- Auf deutsch: -mcpu optimiert fuer 'CPU TYPE' so, dass der code auch noch auf i386ern laeuft[1], -march impliziert -mpcu und optimiert ausser- dem so, dass der code eben i.d.R _nicht_ auf i386ern laeuft, z.B. indem die MMX-Instruktionen verwendet werden. -dnh PS: Ich moechte nochmal betonen, dass der 'CPU TYPE' "athlon" AFAIK erst mit dem gcc 3.x "bekannt" ist, davor nur durch patches! Das obige gilt aber auch fuer alle anderen x86 die neuer als der i386er sind (also alle Pentii sowie K5, K6, diverse Cyrix...) PPS: Danke fuer die Korrektur :) [1] d.h. verwendet nur Instruktionen, die auch schon der i386er kennt -- "We apologise for the inconvenience" ("God's Final Message") --- Douglas Adams (P.S.: I think, I feel good about it, too...)
participants (4)
-
David Haller
-
Dejan Milosavljevic
-
philippt@t-online.de
-
Thorsten Haude