Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 17. Nov 2018 5:14

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 31. Mai 2007 8:21 
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 31. Mai 2007 11:01 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 31. Mai 2007 11:50 
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?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 31. Mai 2007 13:18 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 31. Mai 2007 13:48 
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?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 01. Jun 2007 9:40 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04. Jun 2007 13:46 
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... :-)

Danke für Deine Hilfe!


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 04. Jun 2007 14:56 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de