gcc 4.0 installieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • gcc 4.0 installieren

    In den letzten Tagen habe ich mich etwas näher mit der gegenwärtigen Entwicklung des gcc Compilers beschäftigt.

    Als Nebenprodukt habe ich eine kleine Anleitung geschrieben, wie man unter OS X aktuelle Versionen (e.g. gcc 4.0) aus dem Sourcecode kompiliert, installiert und diese Version in Xcode verwenden kann.

    Vielleicht interessiert sich ja der eine oder andere für dieses How-To.

    Feedback, Anregungen, Kritik, etc. natürlich erwünscht.

    t.

    PS: Habe gerade einmal (recht oberflächlich allerdings) die Performance des von gcc 3.3 und gcc 4.0 erzeugten Codes anhand meines Workshop-Apfelmännchenprogrammes getestet (beides mit -O3 als Optimierungsflag). Gcc 4.0 hat dabei einen Geschwindigkeitsvorteil von ca. 7-8% eingebracht. Das läßt sich doch hören.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • RE: gcc 4.0 installieren

    hallo jörn,

    erstmal danke für deine nützlichen installations hinweise.
    Eines schreckt mich etwas ab:
    Das Kompilieren, das in mehreren Phasen abläuft, kann je nach Rechnerleistung durchaus ca. 2 bis 4 Stunden dauern.


    wieso dauert das so lange und wo sind die vorteile
    bei verwendung eines neueren compilers ?
    Ich lese bei "älteren" sources , mit denen ich mich ja leider
    öfter beschäftige , das eine bestimmt version voraussetzung
    für das erfolgreiche kompilieren ist.

    Heisst das das man mit einer darüberliegenden versions nummer von
    gcc NICHT mehr kompatibel ist?

    gruss
  • Hi,

    Ich schreib mir grade eine eigene Programmiersprache, also naja, ich versuch so ein bisschen was in der Richtung. Naja, hab aus diesem Anlass übers wochenende mal den GCC 3.4.3 geladen.
    Zuerst muss er konfiguriert werden, und dann noch kompiliert! Ich nehme an dass die manuelle kompilation auf die kompatibilität mit anderen Systemen (Windows, Linux, Solaris, etc.) zurückzuführen ist.
    Die Kompilierung nahm bei mir gut 2h in anspruch, da GCC ein riesen library ist (ca. 100 MB, die 3.4.3). Aber es lohnt sich, nur schon um der UNIX welt ein bisschen näher zu kommen.

    Als kleine Anregung für alle terminal einsteiger würde ich mal empfehlen:
    Versucht mal im terminal euer programm zu kompilieren, ist lustig!

    Quellcode

    1. /usr/bin/gcc -o "~/Desktop/Meine fertige executable" "~/meine_main_datei.c"


    Dies erzeugt nur eine Executable, die sich in einem Shell ausführen lässt. Ihr könnr aber auch selber Application Bundles machen. Das macht Richtig spass und man lernt den Aufbau des Mac OS X und dessen Kern ein wenig.
    Schaut euch mal den Build-Log eures projektes an, da sind alle Shell-Tasks, die von Xcode ausgeführt werden, aufgelistet.

    Liebe Grüsse,
    Fabian
  • Original von Fabian
    Naja, hab aus diesem Anlass übers wochenende mal den GCC 3.4.3 geladen.


    Ein FSF Tarball-release oder die Applebranch aus dem CVS?

    Zuerst muss er konfiguriert werden, und dann noch kompiliert!


    Hast Du das mit ./configure ...; make etc. oder im 'Appleverfahren' gemacht?

    t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • Original von Fabian
    Ich habs mit den Tarball Releases gemacht und mit 'make configure'. War für mich am einfachsten.


    Ja, wenn man mal kapiert hat wie das mit configure & make geht ist das schon ganz praktisch.

    Aber denke dran, der FSF snapshot ist unter OS X eigentlich nur für reines C einsetzbar. ObjC macht Probleme und Carboncalls sollte man sich auch verkneifen...

    t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • RE: gcc 4.0 installieren

    Original von macfreak2004
    Eines schreckt mich etwas ab:
    Das Kompilieren, das in mehreren Phasen abläuft, kann je nach Rechnerleistung durchaus ca. 2 bis 4 Stunden dauern.


    wieso dauert das so lange


    Es ist halt kein 'hallo World' Programm. Wie Fabian schon sagte; ca. 100 MB Sourcen, die sich während des Kompilierens auch noch auf gute 600 MB aufblähen können.

    und wo sind die vorteile
    bei verwendung eines neueren compilers ?


    Ein weites Feld mit unterschiedl. Aspekten. gcc 4, auf da ich mich haupsächlich bezogen habe, ist z.Z. natürlich nur experimentell zu verwenden. 3.4, das Apple allerdings nicht ausliefert, dürfte auch produktiv verwendbar sein.

    Ich lese bei "älteren" sources , mit denen ich mich ja leider
    öfter beschäftige , das eine bestimmt version voraussetzung
    für das erfolgreiche kompilieren ist.
    Heisst das das man mit einer darüberliegenden versions nummer von
    gcc NICHT mehr kompatibel ist?


    Das ist wie mit Apples APIs. Neues wird hinzugefügt, altes wird deprecated oder ganz auf den Müllhaufen geworfen.

    Neue Erungenschaften der gcc Compiler sind oft bessere Performance, d.h. schnelleres Kompilieren, aber auch besser produzierter Code. In 4.0 wird uns ja einiges versprochen. Neue Compilerflags kommen (kamen) hinzu (z.B. -zerolink). Man kann aktuell z.B. auch gut für den G5 optimieren (-mtune=970, bzw. allg. 64bit Unterstützung). Auf Uraltversionen werden diese relevanten Neuerungen nicht umbedingt mehr eingepflegt. Teilweise werden neuere Spezifikationen (ISO, ANSI, etc.) eingearbeitet (da macht C++ m.W. den Löwenanteil aus). Genaueres sollte man den jeweiligen Changelogs entnehmen

    gcc.gnu.org/gcc-3.0/features.html
    gcc.gnu.org/gcc-3.3/changes.html
    gcc.gnu.org/gcc-3.4/changes.html
    gcc.gnu.org/gcc-4.0/changes.html

    Kompatibilität zwischen versch. Compilerversionen hängt stark von den Anforderungen des Codes ab. 'Normalocode' dürfte da wenig Probleme bereiten, aber Sourceprojecte, die vielleicht etwas 'grenzwertig' orientiert sind, müssen sich nicht unbedingt wundern, wenn ihr Grenzbereich mit der Zeit ins Aus gerät.

    Deine Beschäftigung mit älteren Versionen betrifft sicherlich den Schritt 2.95 auf 3.0. Da gab es u.a. zwei gravierende Änderungen, die besonders für die Inkompatibilitäten verantwortlich sind. a.) Die C++ ABI wurde geändert. Das hat z.B. zur Folge daß OS X Kernel Extensions für 10.0 mit 2.95 komiliert werden müssen, ab 10.1 aber gcc 3+ verwendet werden muß. b.) Unter C wurde der Umgang mit variablen Argumenten an neue Standards angepaßt. Unter Version 2 wurde der Header varargs.h verwendet, danach nur noch stdarg.h

    etc. t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • RE: gcc 4.0 installieren

    ich hab das mal versucht. hat ueberraschend gut geklappt, bis es ans kompilieren ging.

    gnumake install RC_OS=macos RC_ARCHS=ppc TARGETS=ppc SRCROOT=`pwd` OBJROOT=`pwd`/build/obj DSTROOT=`pwd`/build/dst SYMROOT=`pwd`/build/sym

    produziert folgende fehlermeldung:

    gnumake: *** No rule to make target `install'. Stop.

    haeh?? ich versteh bloss bahnhof :(

    was mach ich falsch?

    BTW, ich hab apple-gcc-4025 statt apple-gcc-4021 gesaugt. war das der fehler?
    Mac Mini, 1.83 GHz Core 2 Duo, 2 GB, OSX 10.6.3, Xcode 3.2.2
    iPhone 3GS, 16 GB, OS 3.1.3
  • RE: gcc 4.0 installieren

    Schon möglich, daß es mit der einen oder anderen Version nicht klappen könnte, Dein Problem scheint aber woanders zu liegen. Das Programm Gnumake findet in Deinem Fall keine Anweisungen, was es überhaupt machen soll.

    Bist Du Dir sicher, im richtigen Verzeichnis zu sein? Du must Gnumake aus dem Top-Sourcelevel-Verzeichnis aufrufen, welches CVS als Verzeichnis 'gcc' angelegt hat; nicht aus höheren Verzeichnissen (HomeDir etc.) oder tieferer Ebene. Inherhalb besagten gcc-Verzeichnisses gibt es noch ein weiteres Verzeichnis gcc, aber das ist ads falsche...

    t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • RE: gcc 4.0 installieren

    Original von harry
    sieht aus als ob ich im falschen verzeichnis war (2mal cd gcc). jetzt laeuft es.


    Siehst Du. Sach' ich doch.

    ca 5 stunden und noch nicht fertig. ich geh jetzt ins bett...


    Hoffe, Du hast gut geschlafen.

    Hat das Kompilieren geklappt? Und wie lange hat es letztendlich gedauert? Über 5 Std. bei welcher Hardware (CPU, Ram...)?

    t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • RE: gcc 4.0 installieren

    Original von harry
    ca 5 stunden und noch nicht fertig. ich geh jetzt ins bett...

    Jetzt weiß ich auch, warum es für die ganzen GPL-Tools immer einen ganzen Rechencluster braucht, der dann 24h am Tag nichts anderes macht, als immer nur den neusten Build zu kompilieren ;)
  • RE: gcc 4.0 installieren

    Original von tsunamix
    Original von macfreak2004
    Eines schreckt mich etwas ab:
    Das Kompilieren, das in mehreren Phasen abläuft, kann je nach Rechnerleistung durchaus ca. 2 bis 4 Stunden dauern.


    wieso dauert das so lange


    Es ist halt kein 'hallo World' Programm. Wie Fabian schon sagte; ca. 100 MB Sourcen, die sich während des Kompilierens auch noch auf gute 600 MB aufblähen können.

    und wo sind die vorteile
    bei verwendung eines neueren compilers ?


    Ein weites Feld mit unterschiedl. Aspekten. gcc 4, auf da ich mich haupsächlich bezogen habe, ist z.Z. natürlich nur experimentell zu verwenden. 3.4, das Apple allerdings nicht ausliefert, dürfte auch produktiv verwendbar sein.

    Ich lese bei "älteren" sources , mit denen ich mich ja leider
    öfter beschäftige , das eine bestimmt version voraussetzung
    für das erfolgreiche kompilieren ist.
    Heisst das das man mit einer darüberliegenden versions nummer von
    gcc NICHT mehr kompatibel ist?


    Das ist wie mit Apples APIs. Neues wird hinzugefügt, altes wird deprecated oder ganz auf den Müllhaufen geworfen.

    Neue Erungenschaften der gcc Compiler sind oft bessere Performance, d.h. schnelleres Kompilieren, aber auch besser produzierter Code. In 4.0 wird uns ja einiges versprochen. Neue Compilerflags kommen (kamen) hinzu (z.B. -zerolink). Man kann aktuell z.B. auch gut für den G5 optimieren (-mtune=970, bzw. allg. 64bit Unterstützung). Auf Uraltversionen werden diese relevanten Neuerungen nicht umbedingt mehr eingepflegt. Teilweise werden neuere Spezifikationen (ISO, ANSI, etc.) eingearbeitet (da macht C++ m.W. den Löwenanteil aus). Genaueres sollte man den jeweiligen Changelogs entnehmen

    gcc.gnu.org/gcc-3.0/features.html
    gcc.gnu.org/gcc-3.3/changes.html
    gcc.gnu.org/gcc-3.4/changes.html
    gcc.gnu.org/gcc-4.0/changes.html

    Kompatibilität zwischen versch. Compilerversionen hängt stark von den Anforderungen des Codes ab. 'Normalocode' dürfte da wenig Probleme bereiten, aber Sourceprojecte, die vielleicht etwas 'grenzwertig' orientiert sind, müssen sich nicht unbedingt wundern, wenn ihr Grenzbereich mit der Zeit ins Aus gerät.

    Deine Beschäftigung mit älteren Versionen betrifft sicherlich den Schritt 2.95 auf 3.0. Da gab es u.a. zwei gravierende Änderungen, die besonders für die Inkompatibilitäten verantwortlich sind. a.) Die C++ ABI wurde geändert. Das hat z.B. zur Folge daß OS X Kernel Extensions für 10.0 mit 2.95 komiliert werden müssen, ab 10.1 aber gcc 3+ verwendet werden muß. b.) Unter C wurde der Umgang mit variablen Argumenten an neue Standards angepaßt. Unter Version 2 wurde der Header varargs.h verwendet, danach nur noch stdarg.h

    etc. t.


    Wow das war sehr aufschlussreich danke:-)
    denke mal weihnachten gibt den anlass mal zu testen .

    grüsse
  • RE: gcc 4.0 installieren

    Original von tsunamix
    Hat das Kompilieren geklappt? Und wie lange hat es letztendlich gedauert? Über 5 Std. bei welcher Hardware (CPU, Ram...)?


    scheint geklappt zu haben, aber genau weiss ich das erst wenn ich versuch den gcc4 zu benutzen.
    keine ahnung wie lange es am ende gdauert hat, hab ja gepennt. irgendwo zwischen 5 und 12 stunden.
    hardware: G4-450, 1 GB RAM, im moment fast 2,5 GB plattenplatz frei
    Mac Mini, 1.83 GHz Core 2 Duo, 2 GB, OSX 10.6.3, Xcode 3.2.2
    iPhone 3GS, 16 GB, OS 3.1.3
  • RE: gcc 4.0 installieren

    Original von harry

    scheint geklappt zu haben,...


    Prima.

    keine ahnung wie lange es am ende gdauert hat, hab ja gepennt.


    Kleiner Tip dazu. Ich habe mir mein Terminalprompt geändert, so daß jeweils auch Datum und Zeit angegeben wird. Näheres dazu bei Interesse hier Bash Prompt HOWTO und hier Advanced Bash-Scripting Guide. Alternativ kann man an einen Terminalbefehl weitere Befehle anhängen, z. B. um abschließend ein Datum auszugeben: <terminalcomando> && date

    irgendwo zwischen 5 und 12 stunden.
    hardware: G4-450, 1 GB RAM, im moment fast 2,5 GB plattenplatz frei


    5 Stunden plus X scheint mir da schon recht viel zu sein. Für apple-gcc-4026 habe ich am Samstag ziemlich genau 4,5 Std. gebraucht auf wesentlich bescheidenerer Hardware (PB G3 / 333 / 192MB).

    t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?