Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Compilier CPU Flags. Welches gilt für einen Athlon?

  1. #1
    Banned Avatar von Catonga
    Registriert seit
    Nov 1999
    Beiträge
    2.389

    Question Compilier CPU Flags. Welches gilt für einen Athlon?

    Hallo

    In der GCC Doku http://gcc.gnu.org/onlinedocs/gcc-2....cc_2.html#SEC2
    habe ich folgendes gelesen:

    "2.14.15 Intel 386 Options
    These `-m' options are defined for the i386 family of computers:


    -mcpu=cpu type
    Assume the defaults for the machine type cpu type when scheduling instructions. The choices for cpu type are:
    `i386' `i486' `i586' `i686'
    `pentium' `pentiumpro' `k6'


    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 without the `-march=cpu type' option being used. `i586' is equivalent to `pentium' and `i686' is equivalent to `pentiumpro'. `k6' is the AMD chip as opposed to the Intel ones.


    -march=cpu type
    Generate instructions for the machine type cpu type. The choices for cpu type are the same as for `-mcpu'. Moreover, specifying `-march=cpu type' implies `-mcpu=cpu type'.

    -m386
    -m486
    -mpentium
    -mpentiumpro
    Synonyms for -mcpu=i386, -mcpu=i486, -mcpu=pentium, and -mcpu=pentiumpro respectively. These synonyms are deprecated. "

    Leider steht da nicht dran, welches Flag bei einem Atlhon gilt.
    Müßte ich da -mcpu=k6
    nehmen oder gibts da schon ne extra Option für einen Atlhon (K7).

    Immerhin ist ein K6 eher ein Pentium also 586 als ein Rechner der Athlon (686) Klasse.

  2. #2
    Registrierter Benutzer
    Registriert seit
    Jul 1999
    Beiträge
    629

    Exclamation

    hallo Catonga,

    es gibt zumindest für meinen gcc-2.96 noch einen weiteren flag:
    Code:
    -march=athlon
    redhat kennt auch den host-type athlon-pc-linux-gnu.

    wie das nun beim gcc-2.95.3 ist, kann ich nicht sagen, damals hatte ich noch keinen athlon aber wenn es nicht funktioniert, dann nimm lieber den i686-falg als den k6-flag...

    Tosk

  3. #3
    Banned Avatar von Catonga
    Registriert seit
    Nov 1999
    Beiträge
    2.389

    Post

    Ok, also wenn

    Code:
     -march=athlon
    nicht gehen sollte, dann werd
    ich


    Code:
    -march=i686
    probieren.

    Wie ist das ansonsten noch mit der Stabilität
    des Binary Codes, wenn man CPU Flags wie diese beim compilieren gesetzt hat?
    Wie ist deine Erfahrung in dem Fall?

    Danke

  4. #4
    Sommerzeitgegner Avatar von Nicolas
    Registriert seit
    Jun 2000
    Ort
    LA
    Beiträge
    288

    Question

    Gibt es eigentlich auch einen Compilerflag für den Pentium III?
    Das heißt jetzt nicht mehr Stoffetzen sondern Sto\iflanguage{german}{"}{f}ffetzen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Nov 2000
    Ort
    D, 01277 Dresden
    Beiträge
    274

    Post

    @Nicolas:

    -march=i686 und -mcpu=i686 sind die Compileroptionen für den Pentium III

    CU

  6. #6
    berell
    Gast

    Post

    frage :
    erkennt gcc nicht den prozessor automatich ??
    jedenfalls wenn ich ne config starte sehe ich dann immer irgendwo was mit for i686 usw.

    wenn mer schon dabei sind :
    gibt es noch andere optionen das system zu beschleunigen z.b -O2 oder so ähnlich
    und kann mit die per FLAGS mitteilen ?

    -bernd

  7. #7
    Banned Avatar von Catonga
    Registriert seit
    Nov 1999
    Beiträge
    2.389

    Post

    <BLOCKQUOTE><font size="1" face="Arial,Helvetica,Geneva">Zitat:</font><HR>Original erstellt von Munick:
    <STRONG>@Nicolas:

    -march=i686 und -mcpu=i686 sind die Compileroptionen für den Pentium III

    CU</STRONG>[/quote]

    Wenn diese Flags für den Pentium 3 sind,
    wiso soll man dann dieses Flag für einen Athlon verwenden.

    Athlon und Pentium 3 sind doch völlig unterschiedlich, was heißen kann, das eine für den P3 compilierte Software gar nicht auf dem Athlon läuft.


    Und gilt i686 nicht eher für den Pentium 2 ?


    Pentium = i586
    Pentium MMX = i568
    Pentium Pro = i686
    Pentium 2 = i686

    Pentium 3 = i786 ???
    Pentium 4 = i886 ???

  8. #8
    Registrierter Benutzer
    Registriert seit
    Nov 2000
    Ort
    D, 01277 Dresden
    Beiträge
    274

    Post

    Die Option -march=i686 soll man deswegen für den Athlon benutzen, da es keine -march=athlon Option im gcc-2.95.x gibt. Die gibt es erst im gcc-3.0 (den gcc-2.96 gibt es offiziell ja nicht), den ich noch nicht verwenden will.
    Desweiteren unterscheiden sich der Pentium II und der Pentium III nicht sonderlich, sondern basieren IIRC beide noch auf dem PentiumPro.

    Und Athlon und PIII unterscheiden sich nicht sonderlich, da beides x86er sind. Der wesentliche Unterschied zwischen beiden liegt an speziellen Befehlssätzen (MMX vs ISSE).

    An der Stabilität der Binaries ändert sich nach meiner Erfahrung nichts.

    @berell: -O3 ist noch optimierter. Allerdings siund die Binaries dann so optimiert, daß sie wahrscheinlich auf anderen Computern nicht unbedingt laufen und core dumps erzeugen. Und nicht jedes Programm läßt sich mit dieser Option kompilieren (wiederum core dumps).
    Ich versuche auf meinem LFS alles mit -O3 zu kompilieren und hatte bisher noch kaum Probleme.

    CU

  9. #9
    berell
    Gast

    Post

    AHA so is das also
    Danke ar das wollt ich wissen .

    -bernd

  10. #10
    Registrierter Benutzer
    Registriert seit
    Nov 1999
    Ort
    MD
    Beiträge
    595

    Post

    zur ergänzung @berell:

    der gcc erkennt den rechner-typ nicht automatisch. das erledigt meist das ./configure-script und schreibt den typ in das Makefile. würde gcc den typ automatisch erkennen wäre keine cross-kompilierung möglich.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •