[linux-l] Fragen zum Compiler gcc-3.4.x

Juergen Rienaecker j.rienaecker at arcor.de
Di Dez 7 11:19:42 CET 2004


Axel Weiß schrieb:
> 
> Juergen Rienaecker wrote:
> > Seit wenigen Tagen gibt es ja schon gcc-3.4.3,
> [...]
> > Also habe ich ihn auf meiner Suse-9.1 installiert, aber so,
> > daß ich auch noch den gcc-3.3 nehmen kann, wenn der gcc-3.4.x
> > nicht akzeptiert wird.
> >
> > Meine Erfahrungen: neuere Quellpackete mag er. Bei älteren
> > kann  er streiken (z.b. bei gnome-2.6.1 gibt es noch einige,
> > die er nicht mag)
> > Die neuen 2.6.x Kernel von kernel.org sind auch kein Problem.
> > Den SuSE-kernel mag er natürlich nicht.
> 
> Hallo Jürgen,
> 
> willst Du deine Erfahrungen mit dem gcc-3.4 zusammenfassen und zum
> Nachlesen bereitstellen? (Und verrätst Du dann auch, wo die zu finden
> sein werden?;)
> 
Das kann ich machen, wenn es hilft.
Ich habe aber leider nicht Informatik sondern Physik studiert.
Damals (1956) gab es diese Fachrichtung noch nicht.
Auch habe ich Probleme mit dem Computerenglisch.
Deshalb verstehe ich manchen englischen Text meist erst, wenn ich
über das Problem schon einiges Wissen habe, was dann durch das
Lesen ergänzt wird.
C habe ich für die Arbeit in primitiven Weiterbildungskursen
und nach Kerninghan/Ritchie "Programieren in C" gelernt.
Meine c++ Kentnisse sind noch bescheidener. Assembler habe ich
mal für den Z80 gemacht, aber jetzt dachte ich eigentlich, das
C das erledigt und ich keine Assemblerkenntnisse mehr brauche.

Generell lerne ich lieber an praktischen Beispielen und lese dann
gerne, warum man das so gemacht hat.

Nun zu meinen bisherigen Erfahrungen mit dem Gcc-3.4.3.
Alles was ich mit ihm übersetzen konnte, läuft stabil.
Ich habe gemessen an komprimierten rpm-Dateien jetzt schon
fast 200 MB übersetzt.
Für ein gültige Urteil zur Beschleunigung der Laufzeit des erzeugten
Codes fehlt mir ein Tool. Aber der selbstkompilierte Mozilla
ist deulich schneller als das Binärpaket einer Heft-CD.
Ich habe auf meiner Suse-9.1 zunächst alle Pakete, die ich für
Laufzeit der wesentlichen Programme für relevant hielt, mit dem
gcc-3.4.3 neu übersetzt. Also zunächst den Kernel, auch den
Suse-kernel habe ich geknackt, dann XFree, die meisten libs aus
der Reihe glib2, gtk2 in Richtung gnome-2.4, ImageMagick, Gimp,
Mozilla-1.7.2 (das Update für Suse-9.2) und einige Gnomepakete
(nautilus,  epiphany und einiges mehr).

Der gcc-3.4.3 tolleriert schlampiges Programieren weniger.
Er mag es nicht wenn in source-xy.h etwas wesentlich anderes
für eine Funktion steht als in source-xy.c.
Bei "switch  case" tolleriert er kein default: ohne ';'.
Ein default ohne folgende Anweisung ist ja auch unnötig.
Bei c++ nehmen es einge Programierer nicht so genau mit dem
Verteilen von ';'.
Ich habe nur das korrigiert, was ich verstanden habe, schließlich
soll der Code auch stabil laufen.

Das ebx-Problem ist mir bisher 3 mal begegnet.
Bei libpng-1.2.5,  SDL-1.2.7 und gstreamer.
Solange ich nicht verstanden habe, was da gemacht wird, und
wie ich es seriös beheben kann, greife ich da nicht ein.
Für gnome-2.4 der Suse-9.1 habe ich ja die Binärpakete.
Den gstreamer für gnome-2.6.1 habe ich nun doch mit dem
gcc-3.3 übersetzt, da es sonst bei meinen Vorhaben, gnome-2.6.1
aus den Quellpacketen der Linux-user-CD für meine Suse-9.1
zu übersetzen, nicht weiter geht.


Es grüßt Jürgen Rienäcker

Anmerkung:
  
Die letzte gekaufte Suse ist die 9.0. Mit der CD aus dem
Linux-Magazin und von ftp://ftp.gwdg.de gesaugten Paketen habe
ich mir die Suse-9.1 aufgebaut. Das wird mit dem Analogmodem
ganz schön teuer aber irgendeinem Hobby muß man ja als Rentner
fröhnen.
Wer die Suse nur mit Yast installiert, hat dann meist nicht das
Wissen, um etwas mit selbstkompilierten Paketen aufzubauen.

Suse unterstützt die Selbtcompilierer nicht, sonst würde es
Patchdateien für die Quellpakete geben. Warum muß ich 40 MB
für ein Update der Kernelsources oder für XFree saugen wenn
der eigentliche Patch nur wenige KB ist ?



Mehr Informationen über die Mailingliste linux-l