EIne gcc-3.0 Distribution wird es bestimmt nicht geben, erstens wegen der oben angführten probleme, und es lässt sich damit garnicht die Distribution Kompielieren, da einige Pakete (insbesondere KDE) sich damit nicht Kompilieren lassen. Slakware 8 bietet ihn als zusatz Paket, allerdings hat sich gezeigt, das die entstehenden Probleme im Einsatz schwerer weiegen als der Geschwindigkeits gewinn. MFG
Siehe: portal.suse.de GCC 3.0 Artikel: Programmieren unter Linux / GCC 3.0
SuSE und GCC 3.0
Eine Version des GCC 3.0 compiliert für SuSE 7.2 und SuSE 7.1 ist erhältlich unter ftp.suse.com/pub/people/aj/GCC3.0. Diese Version ersetzt nicht den normalen Compiler, sondern wird nach /opt/experimental/gcc30 installiert. Ein entsprechendes Vorgehen wurde von Mark Mitchell in seiner Ankündigung des GCC 3.0 empfohlen. Somit kann der Benutzer zwischen dem GCC 2.95.2 (7.1) bzw. 2.95.3 (7.2) und dem neuen GCC 3.0 jederzeit wechseln. Der C Compiler wird so als /opt/experimental/gcc30/bin/gcc aufgerufen, der 2.95er wie gehabt als gcc.
Da ein Nuller Release oft noch eine Reihe von gravierenden Bugs enthält und aufgrund der Änderungen im neuen Compiler eine Reihe von Paketen angepaßt werden müssen, wird SuSE den GCC 3.0 nicht direkt in der Distribution als Standardcompiler benutzen, sondern nur für den Benutzer als Option anbieten.
Christoph: Wenn nicht der GCC diesen Teil übernimmt, wer soll es sonst tun? Der Linker muss dazu natürlich auch angepasst werden, aber GCC muss doch passenden Binärcode erzeugen.
Aber wird wohl nötig sein, ist ja immerhin ein Compiler. Nur zu schade, das das dann hinausgezögert wird mit einem Standardkonformen also ansi-conformen und fehlerfreien Compiler. :(
Wird also noch ne weile so bleiben mit dem Black Magic code.
> Nur zu schade, das das dann hinausgezögert wird mit einem Standardkonformen also ansi-conformen und fehlerfreien Compiler.
Tja, werdet Ihr wohl doch alle gcc - 2.96 nehmen müssen, auch wenn Red Hat ein paar Patches eingebaut hat ;-)
Der läuft nämlich stabil, ist ANSI-conform und wesentlich bugfreier als 3.0. Was ich nie verstehen werde, ist warum man nicht die gcc 2.96-Patches in 3.0 mit reingenommen hat, dann hätte man einen stabilen 3.0 gehabt. Ist doch alles Open Source... da war man sich wohl zu fein im Steering Committee, was ? Das erinnert mich an den Witz aus den Vorstandsetagen deutscher Firmen, warum die denn so viel Mist bauen. Die Antwort ist, weil von z.B. 12 Vorstandsmitgliedern 11 steuern und 1 rudert, wohingegen eigentlich 11 rudern und 1 steuern sollte... das dürfte wohl momentan bei gcc das Problem sein.
Aber so - was soll ich mit einem Compiler, der nicht mal KDE compilieren kann ? Soll ich jetzt auf C# umsteigen ?
Weil die verschiedenen 2.96 varianten leider sehr inkompatibel zum 3.0er ist. Ein Patch kann man nicht so ohne weiteres einbauen, da der 2.96 Zweig eine reiner interner RedHat Zweig ist, aber keine gemeinsame öffentliche Entwicklung eines compilers für alle.
Und das ding fehlfrei sein soll ... schau mal auf die Maillingsten von diversen Projekten, es ist schon sehr peinlich, wenn RedHat User und Mitarbeiter andauernd nachfragen müssen, ob auch andere das specielle problem X haben oder ob es am compiler liegt. lists.kde.org wäre ein Ort zum Suchen von solchen Mails.
Es war (wie oben schon unterschwellig angesprochen) einmal die Rede von Optimierungen im Hinblick auf Desktop-Systeme im allgemeinen und KDE im Besonderen im Bezug auf die GCC.
Kann mir jemand kurz und einfach(!) zusammenfassen wie und was man an einem compiler optimieren muss damit Desktop-Software so kompiliert werden kann das sie schneller und effizienter läuft?
Oder ein URL der mir weiterhilft, dieses Thema ist nämlich eines was mich sehr interessiert.
der flaschenhals ist bei heutigen schnellen linux-rechnern nicht mehr unbedingt die schnelligkeit des erzeugten codes, sondern die dynamischen bibliotheken. (selbst getestet mit einem p1 und pentiumoptimierten gcc und auf einem 1.4GHZ mit standard-gcc). der runtime-linker/loader ist für solche extensive nutzung von bibliotheken nicht ausgelegt worden und bremst damit das gesamte system (siehe auch kde). die üblichen optimierungen (-O2 -ffast-math -march=pentium/pentiumpro/athlon -s -pipe -fexpensive-optimizations ...) bringen vielleicht auf einem langsamen system eine kleine verbesserung, aber der grosse hit wirds auch nicht.
pre-linking ist die einzigste lösung - das ist aber noch "design-studie". ansonsten hilft nur ordentlich ram und ein schneller rechner mit ATA100 pladde + die überlichen optimierungen)
warten wir erstmal auf den 3.0.1 der anfang august kommen sollen. die grössten bugs sollen dort bereits gefixt sein und damit dürfte der gcc-3 auch als neuer standard-compiler einsatzfähig sein(?)
ich habe selbst ein komplettes system "nur" mit dem gcc-3.0 gebaut und kann nur folgendes sagen: viele probleme mit der neuen stdc++ version 3 (der c++ library die mit dem compiler-paket kommt). netscape & co. gehen nicht, einige apps haben probleme mit der so gebauten XFree usw. gnome und kde gehen ohne probs.
ingesamt ist es ziemlich tragisch was dort beim gcc-team gemacht wird. das haut alles hinten und vorne nicht hin! mittlerweile muss man mehrere compiler auf dem system haben (oder gleich einen älteren nutzen) um keine probleme zu haben. wenn die nicht schleunigst "klar schiff" machen, fahren die damit das komplette linux-system an den baum! denn keine firma ist bereit sich auf solche glückspiele bei dem wichtigsten stück software für das linux-system einzulassen!
Da habe ich was gestern drüber gelesen. Hat anscheinend was mit XFree, Kernel 2.4.x und der glib zu tun. Dafür gibt es eine Variable dir man setzen kann und dann sollte netscape laufen.
Steht irgendwo in der XFree 4.1 dokumentaion drin.
Also in /usr/doc/XFree86/ einfach mal grep netscape * ausführen.
Ach Arni, das man mehrere Versionen braucht war doch bei jeder Software schon immer so. Es hat leider noch kein Entwickler bisher geschafft, auch gleich einen 1 Jahres Hardcore test mit einzuprogrammieren.
Aber warum beschweren, die gcc Leuts haben beim Release gesagt, daß dieser Compiler noch nicht für Distributionen und critical applications geeignet ist, sondern dafür weiterhin der 2.95 benutzt werden soll.
Sei doch lieber froh, daß du auf einem System bist, auf dem man verschiedene Versionen installieren kann (ist ja nun nicht selbstverständlich).
Es nun mal erst mit einem Final release wirklich angefangen zu testen, daß war bei der glibc oder KDE oder dem Kernel auch nie anders, aber ich denke mal mit 3.1.1 wird es dann soweit sein ...
ich weis nicht so recht, ob ich darüber froh sein soll wenn der aktuelle compiler eigentlich mehr ein "test-compiler" ist. abgesehen davon geht das prozedere ja bereits beim 2.95.3 los (stichwort: atexit). prinzipiell kann man momentan nur den 2.95.2 einsetzen. alles andere ist beta bzw. testsoftware.
P.S. es geht nicht darum das es unfertige versionen gibt, wichtig ist das man diese auch so bezeichnet. auf der entsprechenden seite vom gcc-projekt steht z.b. kein wörtchen das dieser compiler nicht für den normalen einsatz gedacht ist. er wird als offizielles release des gcc verkauft.
Ich verstehe nicht, warum soviele Programmierer solchen Müll-Code schreiben. Mein aktuelles C++ Projekt lässt sich auf GCC 2.95.x, GCC 3.0 und sogar Borland C++ 5.5 (für Windows) ohne auch nur eine Warnung kompilieren (trotz Aktivierung aller Warnungen). Hat natürlich ein bisschen Arbeit gemacht, das so hinzukriegen, aber das sollte eigentlich eine Selbstverständlichkeit für einen Programmierer sein. Ich find's auf jeden Fall gut, dass GCC 3.0 diesen Draufloshackern mal kräftig eins auf den Deckel gibt.
Ich hab mein komplettes System nur aus den Sourcen aufgebaut. Alles kompiliert mit dem gcc 3.0. Hat alles einwandfrei (bis auf die ueblichen Probleme hier und da) funktioniert, und tut es noch.
was bringt 3.0 eigendlich an performance?
fragen über fragen ;)
PS: Nein, ich kann kein englisch, um mir dieverse seiten durchzulesen
MFG
MFG
Artikel: Programmieren unter Linux / GCC 3.0
SuSE und GCC 3.0
Eine Version des GCC 3.0 compiliert für SuSE 7.2 und SuSE 7.1 ist erhältlich unter ftp.suse.com/pub/people/aj/GCC3.0. Diese Version ersetzt nicht den normalen Compiler, sondern wird nach /opt/experimental/gcc30 installiert. Ein entsprechendes Vorgehen wurde von Mark Mitchell in seiner Ankündigung des GCC 3.0 empfohlen. Somit kann der Benutzer zwischen dem GCC 2.95.2 (7.1) bzw. 2.95.3 (7.2) und dem neuen GCC 3.0 jederzeit wechseln. Der C Compiler wird so als /opt/experimental/gcc30/bin/gcc aufgerufen, der 2.95er wie gehabt als gcc.
Da ein Nuller Release oft noch eine Reihe von gravierenden Bugs enthält und aufgrund der Änderungen im neuen Compiler eine Reihe von Paketen angepaßt werden müssen, wird SuSE den GCC 3.0 nicht direkt in der Distribution als Standardcompiler benutzen, sondern nur für den Benutzer als Option anbieten.
Nimms nicht zu ernst
Steven
Aber wird wohl nötig sein, ist ja immerhin ein
Compiler.
Nur zu schade, das das dann hinausgezögert wird mit einem Standardkonformen also ansi-conformen und fehlerfreien Compiler. :(
Wird also noch ne weile so bleiben mit dem Black Magic code.
cu
till
Tja, werdet Ihr wohl doch alle gcc - 2.96 nehmen müssen, auch wenn Red Hat ein paar Patches eingebaut hat ;-)
Der läuft nämlich stabil, ist ANSI-conform und wesentlich bugfreier als 3.0. Was ich nie verstehen werde, ist warum man nicht die gcc 2.96-Patches in 3.0 mit reingenommen hat, dann hätte man einen stabilen 3.0 gehabt. Ist doch alles Open Source... da war man sich wohl zu fein im Steering Committee, was ? Das erinnert mich an den Witz aus den Vorstandsetagen deutscher Firmen, warum die denn so viel Mist bauen. Die Antwort ist, weil von z.B. 12 Vorstandsmitgliedern 11 steuern und 1 rudert, wohingegen eigentlich 11 rudern und 1 steuern sollte... das dürfte wohl momentan bei gcc das Problem sein.
Aber so - was soll ich mit einem Compiler, der nicht mal KDE compilieren kann ?
Soll ich jetzt auf C# umsteigen ?
X.
Und das ding fehlfrei sein soll ... schau mal auf die Maillingsten von diversen Projekten, es ist schon sehr peinlich, wenn RedHat User und Mitarbeiter andauernd nachfragen müssen, ob auch andere das specielle problem X haben oder ob es am compiler liegt. lists.kde.org wäre ein Ort zum Suchen von solchen Mails.
Kann mir jemand kurz und einfach(!) zusammenfassen wie und was man an einem compiler optimieren muss damit Desktop-Software so kompiliert werden kann das sie schneller und effizienter läuft?
Oder ein URL der mir weiterhilft, dieses Thema ist nämlich eines was mich sehr interessiert.
thx
(selbst getestet mit einem p1 und pentiumoptimierten gcc und auf einem 1.4GHZ mit standard-gcc). der runtime-linker/loader ist für solche extensive nutzung von bibliotheken nicht ausgelegt worden und bremst damit das gesamte system (siehe auch kde). die üblichen optimierungen (-O2 -ffast-math -march=pentium/pentiumpro/athlon -s -pipe -fexpensive-optimizations ...) bringen vielleicht auf einem langsamen system eine kleine verbesserung, aber der grosse hit wirds auch nicht.
pre-linking ist die einzigste lösung - das ist aber noch "design-studie". ansonsten hilft nur ordentlich ram und ein schneller rechner mit ATA100 pladde + die überlichen optimierungen)
Danke
Pubert
ich habe selbst ein komplettes system "nur" mit dem gcc-3.0 gebaut und kann nur folgendes sagen: viele probleme mit der neuen stdc++ version 3 (der c++ library die mit dem compiler-paket kommt). netscape & co. gehen nicht, einige apps haben probleme mit der so gebauten XFree usw. gnome und kde gehen ohne probs.
ingesamt ist es ziemlich tragisch was dort beim gcc-team gemacht wird. das haut alles hinten und vorne nicht hin! mittlerweile muss man mehrere compiler auf dem system haben (oder gleich einen älteren nutzen) um keine probleme zu haben. wenn die nicht schleunigst "klar schiff" machen, fahren die damit das komplette linux-system an den baum! denn keine firma ist bereit sich auf solche glückspiele bei dem wichtigsten stück software für das linux-system einzulassen!
Da habe ich was gestern drüber gelesen.
Hat anscheinend was mit XFree, Kernel 2.4.x und der glib zu tun.
Dafür gibt es eine Variable dir man setzen kann und dann sollte netscape laufen.
Steht irgendwo in der XFree 4.1 dokumentaion drin.
Also in /usr/doc/XFree86/
einfach mal grep netscape * ausführen.
Es hat leider noch kein Entwickler bisher geschafft, auch gleich einen 1 Jahres Hardcore test mit einzuprogrammieren.
Aber warum beschweren, die gcc Leuts haben beim Release gesagt, daß dieser Compiler noch nicht für Distributionen und critical applications geeignet ist, sondern dafür weiterhin der 2.95 benutzt werden soll.
Sei doch lieber froh, daß du auf einem System bist, auf dem man verschiedene Versionen installieren kann (ist ja nun nicht selbstverständlich).
Es nun mal erst mit einem Final release wirklich angefangen zu testen, daß war bei der glibc oder KDE oder dem Kernel auch nie anders, aber ich denke mal mit 3.1.1 wird es dann soweit sein ...
P.S. es geht nicht darum das es unfertige versionen gibt, wichtig ist das man diese auch so bezeichnet. auf der entsprechenden seite vom gcc-projekt steht z.b. kein wörtchen das dieser compiler nicht für den normalen einsatz gedacht ist. er wird als offizielles release des gcc verkauft.
solchen Müll-Code schreiben. Mein aktuelles C++
Projekt lässt sich auf GCC 2.95.x, GCC 3.0 und sogar Borland C++ 5.5 (für Windows) ohne auch nur eine Warnung kompilieren (trotz Aktivierung
aller Warnungen). Hat natürlich ein bisschen Arbeit gemacht, das so hinzukriegen, aber das sollte eigentlich eine Selbstverständlichkeit für einen Programmierer sein. Ich find's auf jeden Fall gut, dass GCC 3.0 diesen Draufloshackern mal kräftig eins auf den Deckel gibt.