[geloest] gcc 4.2 und 3.4 wie umschalten

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
hasso
Beiträge: 72
Registriert: 23.03.2006 10:52:26
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Bremen
Kontaktdaten:

[geloest] gcc 4.2 und 3.4 wie umschalten

Beitrag von hasso » 02.07.2007 15:07:26

Moin!

Ich benötige für ein (älteres) Projekt den gcc3.4. Das Paket
habe ich auch schon brav installiert. Nur leider weiss ich nicht,
wie ich zwischen den Compiler-Versionen umschalten kann.

Ich habe danach schonmal hier gesucht, aber leider nichts
gefunden.

:?: Kann man überhaupt mehrere, verschiedene Compiler-
Versionen auf einem System laufen lassen?

:?: Wenn ja, wie schaltet man zwischen ihnen um, wenn man
ein klassisches "make-kpkg" benutzen will (ich will einen 2.6.9er
übersetzen).

Vielen Dank schonmal,

Hasso
Zuletzt geändert von hasso am 05.07.2007 14:28:56, insgesamt 1-mal geändert.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 02.07.2007 15:19:18

make-kpkg ist ein Sonderfall:
man make-kpkg hat geschrieben: % MAKEFLAGS="CC=gcc-2.95" make-kpkg ...
bei anderen Projekten kannst du im Normalfall die CC Environmentvariable direkt setzen:

Code: Alles auswählen

cc=gcc-3.4 make
oder beim ./configure übergeben

Code: Alles auswählen

./configure CC=gcc-3.4 && make 
Gruß
gms

Benutzeravatar
hasso
Beiträge: 72
Registriert: 23.03.2006 10:52:26
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Bremen
Kontaktdaten:

Beitrag von hasso » 02.07.2007 15:23:14

Hi!

_Das_ ist ja mal eine schnelle Antwort! Danke!

Dieses "% MAKEFLAGS="CC=gcc-2.95" make-kpkg ..." finde
ich wo?

Gruß,

Hasso

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 02.07.2007 15:30:13

findest du wenn du "man make-kpkg" eingibst

Benutzeravatar
hasso
Beiträge: 72
Registriert: 23.03.2006 10:52:26
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Bremen
Kontaktdaten:

Beitrag von hasso » 04.07.2007 12:03:11

OK.

Das habe ich jetzt -- gemäß man-Seite --
ausprobiert.

Ich habe die benötigten binutils installiert, die
verschiedenen libs (z.B. libncurses5-dev) und
die CC-, HOSTCC- und MAKEFLAGS-Variablen
angepasst (gcc-3.4).

Trotzdem erhalte diesen Error (den ich
auch erhalte, wenn ich "klassisch" nur
mit make arbeite):

Code: Alles auswählen

  CC      arch/i386/kernel/process.o
{standard input}: Assembler messages:
{standard input}:694: Error: suffix or operands invalid for `mov'
{standard input}:695: Error: suffix or operands invalid for `mov'
{standard input}:901: Error: suffix or operands invalid for `mov'
{standard input}:902: Error: suffix or operands invalid for `mov'
{standard input}:969: Error: suffix or operands invalid for `mov'
{standard input}:970: Error: suffix or operands invalid for `mov'
{standard input}:1042: Error: suffix or operands invalid for `mov'
{standard input}:1043: Error: suffix or operands invalid for `mov'
{standard input}:1092: Error: suffix or operands invalid for `mov'
{standard input}:1104: Error: suffix or operands invalid for `mov'
make[2]: *** [arch/i386/kernel/process.o] Fehler 1
make[1]: *** [arch/i386/kernel] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.9'
make: *** [debian/stamp-build-kernel] Fehler 2
Vielleicht kann ja einer mit dieser Fehlermeldung
etwas anfangen ... ?

Hasso

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 04.07.2007 12:52:39

Welche Architektur benutzt du, i386 oder amd64?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22456
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 04.07.2007 14:40:46

Was willst du denn kompilieren ? Damit man ganz sicher geht könntest du auch dir ein Script schreiben das nix anderes macht als die Links umbiegen. Ich denke mal der gcc ccp und falls gebraucht der c++ sollte ausreichen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

dillo
Beiträge: 362
Registriert: 28.05.2005 19:53:56

Beitrag von dillo » 04.07.2007 15:55:45

Hallo,

ist doch ein Kernel oder?

Hängt wohl mit zu "neuen" binutils zusammen.

Code: Alles auswählen

/usr/src/linux-2.6.9# wget www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
/usr/src/linux-2.6.9# patch -Np1 -i linux-2.6-seg-5.patch
.. am gcc musst du dann nichts mehr drehen,

gruß, dillo

Benutzeravatar
hasso
Beiträge: 72
Registriert: 23.03.2006 10:52:26
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Bremen
Kontaktdaten:

Beitrag von hasso » 05.07.2007 11:37:43

Moin Leute!

Danke für Eure Antworten!

@dillo:
Ja, ist ein 2.6.9er Kernel. Du meinst, dass meine "binutils"
einfach zu neu sind? Das kommt gut hin, da ja auch nur
der _Assembler_ diese Fehlermeldung auswirft ... Danke für
den Tip!
Kann ich diesen Patch einfach gefahrlos einfügen, ohne
dass der Kernel korrumpiert wird? Ich will aus dem 2.6.9er
nämlich einen Echtzeitkernel machen, d.h. der wird noch
ein weiteres Mal zum Echtzeitkernel gepatcht werden
müssen ...
Die Variablen CC, HOSTCC und die MAKEFLAGS setze
ich wieder zurück auf die originalen Werte?

Gruß und danke nochmal!

Hasso

dillo
Beiträge: 362
Registriert: 28.05.2005 19:53:56

Beitrag von dillo » 05.07.2007 12:38:10

Hallo,

hatte das gestern kurz ausprobiert. Ohne den angegebenen Patch hatte ich die gleiche Fehlermeldung wie du (unter sid). Nach dem Patchen hatte ich dann an dieser Stelle keinen Fehler mehr, hab aber make nicht ganz durchlaufen lassen!

Die Variablen solltest du zurücksetzen können und dann erstmal nur mit diesem Patch durchlaufen lassen und den Kernel testen.

Kannst natürlich auch gleich den RT-Patch noch zusätzlich anwenden. Der Patch wegen der binutils beschränkt sich auf nur vier Dateien. Ob sich die beiden Patches ins Gehege kommen, kann ich dir nicht sagen.

Viel Erfolg, dillo

Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 05.07.2007 13:07:16

/usr/bin/gcc /usr/bin/g++ und /usr/bin/cpp sind Links zum Programm. Wenn du sie löschst und neue auf den anderen Kompiler anlegst solte das eigendlich auseichen
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22456
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 05.07.2007 13:11:28

Oder -f mit angeben . Dann wird ln dazu gezwungen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
hasso
Beiträge: 72
Registriert: 23.03.2006 10:52:26
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Bremen
Kontaktdaten:

Beitrag von hasso » 05.07.2007 14:28:23

JO!

@all:
Dillos Tip mit dem Patch hat hingehauen! Der Kernel ließ sich
zweimal Patchen und das make / make-kpkg lief problemlos
durch!
Die Veränderungen an CC, HOSTCC und MAKEFLAGS habe ich
wieder rückgängig gemacht (hatte eine Kopie vom Makefile an-
gelegt). Geht. Läuft. Gut!

@dillo: DANKE!!
Woher weiß man eigentlich, welche Patches es gibt, welche Ver-
sion man nehmen muss, welche Probleme die lösen etc. etc.
Woher weisst _Du_ das? :wink:

Herzliche Grüße!

Hasso

dillo
Beiträge: 362
Registriert: 28.05.2005 19:53:56

Beitrag von dillo » 06.07.2007 10:25:25

@hasso

ich weiß bzw. wusste das im Speziellen auch nicht, fand aber dein Problem interessant, weil ich schon öfters selbst solche Probleme hatte. Mit einer wie in deinem Fall aussagekräftigen Fehlermeldung und den entsprechenden Begriffen in einer Suchmaschine findet man relativ schnell eine Lösung. Kannst du selbst nachvollziehen.

Suchbegriffe:
2.6.9+"{standard input}"+" Error: suffix or operands invalid for `mov'"

noch viel Spaß mit deinem Kernel,

dillo

Benutzeravatar
hasso
Beiträge: 72
Registriert: 23.03.2006 10:52:26
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Bremen
Kontaktdaten:

Beitrag von hasso » 06.07.2007 12:49:19

@dillo:

OK, Deine Suche war auch etwas besser spezifiziert, stelle
ich fest ... :D

Spaß hoch! Und Gruß,

Hasso

Antworten