Systemkritiker
Anmeldungsdatum: 2. Januar 2011
Beiträge: 110
Wohnort: Schweiz
|
Hallo Wiki-Team Während dem ich gerade einen Artikel über GDB schreibe, möchte ich parallel dazu noch den über GCC überarbeiten, es wimmelt nur so von C/C++-Konstrukten (allein C/C++ ist ein Unwort), obwohl er noch viele andere Programmiersprachen unterstützt. Ausserdem hätte ich den Abschnitt "GCC-4.3.X selbst kompilieren" (aktuell ist GCC 4.6) entweder komplett gelöscht (ich denke ein Spezialist, der den neusten GCC braucht, kann das ohne UU-Wiki) oder von bestimmten Versionen losgelöst umformuliert. Kurz: ich möchte ihn vollständig überarbeiten. Daher bitte ich euch, eine Kopie davon in der Baustelle zu erstellen. Beste Grüsse, Systemkritiker
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! OK, Baustelle/GCC Gutes Gelingen! so long hank
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Moin Moin Wie geht es voran? Gruß, cornix
|
Systemkritiker
(Themenstarter)
Anmeldungsdatum: 2. Januar 2011
Beiträge: 110
Wohnort: Schweiz
|
Naja, eigentlich ging es nicht schlecht voran, aber dann kamen kurzfristig zahlreiche Lager, die mich noch bis zu drei Wochen lang verhindern können.
Das einzige Zeitfenster bis dahin wäre diese Woche ab morgen abend. Eigentlich habe ich noch fest vor, diese Überarbeitung fertigzustellen, aber das wird sich vermutlich bis Ende März ziehen.
Ich entschuldige mich für diese lange Bearbeitungszeit. Beste Grüsse, Systemkritiker
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Solange du am Ball bleibst, kannst du dir alle Zeit nehmen, die du brauchst. ☺ Und vergiss nicht dich zu melden, wenn du fertig bist. Gruß, cornix
|
Systemkritiker
(Themenstarter)
Anmeldungsdatum: 2. Januar 2011
Beiträge: 110
Wohnort: Schweiz
|
Der März neigt sich dem Ende zu (noch weniger als eine Stunde), aber ich habe es geschafft; der Artikel ist überarbeitet. Ich hoffe meine Änderungen sind nicht allzu radikal, fast nichts ist gleich geblieben und den grössten Teil (GCC-4.3.X) habe ich restlos entfernt. Nun, jetzt warte auf erste Rückmeldungen eurerseits. Beste Grüsse, Systemkritiker
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Moin Moin Liest sich gut. 👍
Anders als in Compiler angegeben...
Das sollte dann in Compiler geändert werden. 😉
Oft kommt noch entweder -O0 -ggdb3 für das Debugging oder -O3 für eine schnelle Ausführung hinzu.
AFAIK passen Debugging-Optionen und die Optimierungen mit -O3 nicht zusammen, da letztere Debugging erschweren/unmöglich machen; lasse mich aber gerne belehren. Als Entwickler/Tester sind die Debbug-Optionen sinnvoll. Will ich aber beispielsweise einen Spielkonsolen-Emulator für den Heimgebrauch optimieren, nutze ich -march=native -03 . Welche Optimierungen -march=native einschaltet, findet man mit folgendem Befehl raus:
echo | gcc -dM -E - -march=native
Analog für -O3. Wenn das Gentoo-Wiki nicht andauernd 503 ausgeben würde, wäre Safe Cflags 🇬🇧 noch ein guter Link. ☹ Gruß, cornix
|
Systemkritiker
(Themenstarter)
Anmeldungsdatum: 2. Januar 2011
Beiträge: 110
Wohnort: Schweiz
|
cornix schrieb: Anders als in Compiler angegeben...
Das sollte dann in Compiler geändert werden. 😉
Gemacht. Oft kommt noch entweder -O0 -ggdb3 für das Debugging oder -O3 für eine schnelle Ausführung hinzu.
AFAIK passen Debugging-Optionen und die Optimierungen mit -O3 nicht zusammen, da letztere Debugging erschweren/unmöglich machen;
Sie erschweren das Debugging, klar, aber ein bisschen etwas nützen sie trotzdem. Allerdings habe ich das nicht gemeint, das entweder oder ist als XOR zu sehen.
Also Debugging=>{-O0;-ggdb3} und Release=>{-O3} . Nachdem ich mich etwas schlau gemacht habe, habe ich es zu Debugging=>{-ggdb3} (da -O0 default) und Release=>{-Ofast;-march=native} (dank dir) geändert und das entweder oder unterstrichen. Das Gentoo-Wiki geht jetzt zwar wieder, aber so richtig anfreunden konnte ich mich damit nicht. Wenn dir etwas daran liegt, kannst du es gerne in die Links einfügen. Sonst noch irgendwelche Beanstandungen? Beste Grüsse, Systemkritiker
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Die Einleitung kommt IMHO ohne die Hinweis-Boxen aus (nicht ohne den Inhalt, nur die Boxen weg). Die manuell gesetzte Linie am Ende des Artikels wird mittlerweile automatisch gesetzt. Von wo hast du die kopiert, dass ich sie dort löschen kann? 😀 Zu -march=nativ noch die Erklärung, dass damit automatisch Optimierungen für den vorhandenen Prozessor gewählt werden, die Methode damit nicht geeignet ist, um Programme für andere Architekturen zu erstellen oder mit distcc zu arbeiten. Gruß, cornix
|
Systemkritiker
(Themenstarter)
Anmeldungsdatum: 2. Januar 2011
Beiträge: 110
Wohnort: Schweiz
|
cornix schrieb: Die Einleitung kommt IMHO ohne die Hinweis-Boxen aus (nicht ohne den Inhalt, nur die Boxen weg).
Stimmt. Die manuell gesetzte Linie am Ende des Artikels wird mittlerweile automatisch gesetzt. Von wo hast du die kopiert, dass ich sie dort löschen kann? 😀
Weiss ich nicht, die war noch aus dem alten Artikel.
Wenn du alte Dinge löschen willst, kannst du dich einmal an der Tabelle versuchen. Die neue habe ich zusammen mit Codeblöcken nicht hinbekommen. Zu -march=nativ noch die Erklärung, dass damit automatisch Optimierungen für den vorhandenen Prozessor gewählt werden, die Methode damit nicht geeignet ist, um Programme für andere Architekturen zu erstellen oder mit distcc zu arbeiten.
Done (obwohl distcc mit -march=<zielprozessor> gehen müsste). Ist General so in Ordnung? Beste Grüsse, Systemkritiker
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Systemkritiker schrieb: Ist General so in Ordnung?
IMHO nein: Versionsübersicht - 4.0 bis 4.5, da hat sich einiges getan. edit: Kleine Änderungen habe ich gemacht, aber die Tabelle mit den Codeblöcken mag auch ich nicht anfassen. Manche Sachen gehen auf einfache Weise nur im Rohformat und nicht in Vorlagen. edit2: Ein Paket gccgo kann ich nicht finden. Gruß, cornix
|
Systemkritiker
(Themenstarter)
Anmeldungsdatum: 2. Januar 2011
Beiträge: 110
Wohnort: Schweiz
|
cornix schrieb: IMHO nein: Versionsübersicht - 4.0 bis 4.5, da hat sich einiges getan.
Schwierig... Go und -Ofast werden erst ab 4.6 unterstützt, --march=native ab 4.2. Der Rest sollte IMHO General erfüllen. Natty wird wohl noch mit 4.6 ausgeliefert, das heisst weder Go, noch -Ofast . Bei mir heisst das Paket gccgo und ich denke, es wird mit Oneiric ausgeliefert. Die Frage ist, wie so etwas gehandhabt werden soll. Beste Grüsse, Systemkritiker
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Natty ist noch nicht fürs Wiki freigegeben, der Nachfolger erst recht nicht. Damit müssen dann -Ofast und Go erst mal raus (allenfalls als Ausblick in den Text). Dapper wird nur noch bis Juni diesen Jahres unterstützt - ich denke da brauchen wir keine Verrenkungen mehr machen. Damit wären dann vorerst 4.2 und 4.4 abzudecken (also getestet hardy bis maverick). Habe gerade gesehen, dass der gdc auch aus den gcc-defaults gebaut wird. Jetzt bin ich verwirrt. 😉 Gruß, cornix
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28954
Wohnort: WW
|
Hallo, cornix +1 Habe noch ein paar kleine Korrekturen gemacht und den letzten Satz in der Einleitung umgestellt. Den Abschnitt "Programme kompillieren" finde ich noch suboptimal. Zu einem kommt da auf einmal ein Assemblerlisting zum Vorschein, auf dass es vorher keinen Bezug gibt, zum anderen wird von einer Datei a.out gesprochen - es steht aber nirgendwo, wie man die bekommt oder wo die herkommt. Der Rest ist IMHO gut. ☺ Gruß, noisefloor
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Mir ist noch was zu den "Parametern" eingefallen. Der Anwender wird sich im Zusammenhang mit dem Artikel Compiler vielleicht fragen, wie er nun die Compiler-Optionen in einem Buildsystem verwendet. Daher ist vielleicht ein Hinweis auf die Variablen CFLAGS und CXXFLAGS angebracht. Gruß, cornix
|