Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
verschiedene GCC Versionen parallel betreiben

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kahnguhu
Gast





BeitragVerfasst am: 31. Mai 2007 8:21   Titel: verschiedene GCC Versionen parallel betreiben

Salü,

ich verwende ein SuSE 10.1 welches GCC 4.1 installiert. Um die Toolchain für MSP430 kompilieren zu können, benötige ich einen GCC 3.4. Kann ich irgendein ein gcc-3.4-rpm (in meinem Falle eines von Mandrake) installieren? Ich habs mal mit der rpm-Option --test versucht; dies bringt nicht unerwartet die Meldung, dass das Paket mit gcc-4.1.rpm in Konflikt steht.

Wie kann ich 2 Kompiler-Versionen parallel betreiben? Ist der Weg über's rpm falsch?

Danke vielmals!

kahnguhu
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 31. Mai 2007 11:01   Titel:

Zwei Programm-Versionen kannst du nur parallel betreiben, wenn du eine davon selbst kompilierst und bspw. nach /usr/local installierst *oder* eine der beiden Versionen in einem chroot-Käfig betreibst.

Wenn es sich nur um einzelne Anwendungen handelt, ist der erste Weg meist besser. Da der gcc aber auch noch einen Haufen Abhängigkeiten auf die C-Libraries mitbringt, halte ich den chroot in diesem Falle für geeigneter.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

kahnguhu
Gast





BeitragVerfasst am: 31. Mai 2007 11:50   Titel:

Vielen Dank für Deine Antwort!

Wie muss ich mir die chroot-Lösung vorstellen? Ich kenne dies z.B. von der Gentoo-Installation: Hier wird irgendwann mal vom Root-FS auf der CD zum Root-FS auf der HD "umgeschaltet". Ich möchte aber wirklich nur den gcc paralell haben, sonst nix. Wieso hältst Du dies für die einfachere Lösung?
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 31. Mai 2007 13:18   Titel:

Es ist deshalb einfacher, weil die von dir mit dem gcc3 erstellten Programme auch die passenden Libraries benötigen. Der gcc3 muss diese an der selben Stelle finden wie nachher im Zielsystem. Ohne chroot müsstest du am dynamischen Linker herumschrauben und deine Makefiles für einen Test deiner Software jeweils anpassen.

Der chroot ist zwar nicht einfacher einzurichten, erfordert im Betrieb aber weniger Aufmerksamkeit und beeinflusst vor allem das restliche System nicht.

Mach dir erst einmal eine Liste aller Pakete, die du für den chroot benötigst. Das ist das Grundsystem, und die Entwicklerwerkzeuge. Die RPM-Dateien dafür in ein Verzeichnis packen.

Dann machst du dir ein Verzeichnis, in dem der chroot-Käfig liegen soll, und installierst dort hinein die Pakete.

Code:

$ mkdir -p /home/kahnguhu/mychroot/var/lib/rpm
$ rpm --root /home/kahnguhu/mychroot --initdb
$ rpm --root /home/kahnguhu/mychroot --nodeps -i Pakete/*.rpm


Um Platz zu sparen kannst du natürlich auch einen Teil der Pakete durch Hardlinks auf die dadurch installierten Dateien ersetzen. Allerdings ist das komplizierter und es gibt evtl. Wechselwirkungen mit dem Grundsystem.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

kahnguhu
Gast





BeitragVerfasst am: 31. Mai 2007 13:48   Titel:

Ui, klingt nach ziemlichem Aufwand:-)

Andere Idee: Ist es möglich, den Inhalt einer älteren Live-CD mit dem entsprechenden Compiler in das ~/chroot Verzeichnis zu kopieren (wird warscheinlich zu viel dabei sein). Ebenfalls die Sourcen des Crosscompilers.
Danach ins Chroot wechseln, den Crosscompiler kompilieren, aus dem Chroot zurück wechseln und Crosscompiler installieren.

Was ist Deine Meinung dazu?
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 01. Jun 2007 9:40   Titel:

Der größte Aufwand ist die Erstellung der Paketliste. Du kannst natürlich auch eine ganz andere Distribution (Live-CD) in einen chroot packen. Für wesentlich einfacher, als eine Paketliste zu erstellen halte ich dies aber nicht.

Du kannst ja auch unter yast->Software->Installation in ein Verzeichnis das openSuSE-Grundsystem als Selektion benutzen und dir ein Grundsystem von YaST erstellen lassen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

kahnguhu
Gast





BeitragVerfasst am: 04. Jun 2007 13:46   Titel:

Ich habs mir nun relativ einfach gemach (kurz rumgespielt bevor ich das CHROOT angehen wollte) und es hat funktioniert:
Die GCC Version 3.4.6 gezogen, in ein Verzeichnis
Code:
/home/kahnguhu/gcc

mit dem Postfix -3.4 im Home installiert. Danach Verzeichnis mit
Code:
export PATH=$PATH:/home/kahnguhu/gcc/bin

bekannt gemacht und vor der Kompilation gemäss http://www.mikrocontroller.net/articles/MSPGCC den Kompiler mit
Code:
export CC=gcc-3.4

"umgebogen".

Weshalb ich kein CHROOT benötigte weiss ich nun aber nicht... Smile

Danke für Deine Hilfe!
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 04. Jun 2007 14:56   Titel:

Offensichtlich sind die Makefiles des MSPGCC schon für diese Situation eingrichtet.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy