| Zeile 1: | Zeile 1: | ||
| − | Wer ein 64-Bit-Betriebssystem entwickeln möchte, allerdings kein 64-Bit-Linux installiert hat, muss sich einen Cross-Compiler bauen, damit dieser 64-Bit- | + | Wer ein 64-Bit-Betriebssystem entwickeln möchte, allerdings kein 64-Bit-Linux installiert hat, muss sich einen Cross-Compiler bauen, damit dieser 64-Bit-Dateien erstellen kann. |
Im Folgenden wird erklärt, wie man einen Cross-Compiler für die x86-64-Plattform unter einem 32-Bit-Linux erstellt. | Im Folgenden wird erklärt, wie man einen Cross-Compiler für die x86-64-Plattform unter einem 32-Bit-Linux erstellt. | ||
| Zeile 5: | Zeile 5: | ||
== Vorbereitung == | == Vorbereitung == | ||
| − | Es gibt zwei verschiedene Wege, einen Cross-Compiler für x86-64 zu erstellen, wir bedienen uns hier der einfachsten Variante: Wir bauen die Binutils und den GCC neu, sodass wir einen funktionierenden gcc haben, mit dessen Hilfe wir x86-64-ELF-Dateien erstellen können. | + | Es gibt zwei verschiedene Wege, einen Cross-Compiler für x86-64 zu erstellen, wir bedienen uns hier der einfachsten Variante: Wir bauen die Binutils und den [[GCC]] neu, sodass wir einen funktionierenden gcc haben, mit dessen Hilfe wir x86-64-ELF-Dateien erstellen können. |
Als erstes müssen dazu die Binutils und der gcc heruntergeladen werden. Wir benutzen dazu die neueste (Stand: 28. August 2009) Version beider Toolchains, einmal die [http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2 binutils 2.19.9] und das Core-Package des [http://ftp.gnu.org/gnu/gcc/gcc-4.4.1/gcc-core-4.4.1.tar.bz2 gcc 4.4.1]. Wenn allerdings auch Support für mehr Sprachen als C gewünscht ist, müssen dementsprechend zusätzliche Pakete unter [http://ftp.gnu.org/gnu/gcc ftp.gnu.org/gnu/gcc] heruntergeladen werden. | Als erstes müssen dazu die Binutils und der gcc heruntergeladen werden. Wir benutzen dazu die neueste (Stand: 28. August 2009) Version beider Toolchains, einmal die [http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2 binutils 2.19.9] und das Core-Package des [http://ftp.gnu.org/gnu/gcc/gcc-4.4.1/gcc-core-4.4.1.tar.bz2 gcc 4.4.1]. Wenn allerdings auch Support für mehr Sprachen als C gewünscht ist, müssen dementsprechend zusätzliche Pakete unter [http://ftp.gnu.org/gnu/gcc ftp.gnu.org/gnu/gcc] heruntergeladen werden. | ||
| Zeile 13: | Zeile 13: | ||
Falls man sich noch nicht auf der Shell befindet, sollte man '''jetzt''' zu selbiger wechseln. | Falls man sich noch nicht auf der Shell befindet, sollte man '''jetzt''' zu selbiger wechseln. | ||
| − | + | Anschließend werden ein paar Variablen gesetzt: | |
<pre> | <pre> | ||
| Zeile 32: | Zeile 32: | ||
make install | make install | ||
| − | Ins binutils-Verzeichnis gewechselt geben wir configure ein paar Parameter mit auf dem Weg: | + | Ins binutils-Verzeichnis gewechselt, geben wir configure ein paar Parameter mit auf dem Weg: |
<pre> | <pre> | ||
| Zeile 45: | Zeile 45: | ||
</pre> | </pre> | ||
| − | Die binutils wurden | + | Die binutils wurden dann erfolgreich gebaut. Jetzt geht's weiter zum gcc. |
== gcc bauen == | == gcc bauen == | ||
=== Halt, da fehlt noch was === | === Halt, da fehlt noch was === | ||
| − | Um den gcc zu bauen benötigt es zwei (sofern nicht bereits installiert) Bibliotheken: Die GMP und MPFR-Libraries. Diese müssen ebenfalls runtergeladen und per ./configure, make, make install gebaut und installiert werden. Hier allerdings '''erst''' GMP '''dann''' MPFR bauen und installieren. | + | Um den gcc zu bauen, benötigt es zwei (sofern nicht bereits installiert) Bibliotheken: Die GMP und MPFR-Libraries. Diese müssen ebenfalls runtergeladen und per ./configure, make, make install gebaut und installiert werden. Hier allerdings '''erst''' GMP '''dann''' MPFR bauen und installieren. |
gcc wird beim configure schon meckern, wenn eines der Librarys fehlt. | gcc wird beim configure schon meckern, wenn eines der Librarys fehlt. | ||
| Zeile 66: | Zeile 66: | ||
Damit wird der Ort der Cross-binutils zum PATH hinzugefügt. | Damit wird der Ort der Cross-binutils zum PATH hinzugefügt. | ||
| − | + | Jetzt wird gcc konfiguriert: | |
<pre> | <pre> | ||
| Zeile 79: | Zeile 79: | ||
</pre> | </pre> | ||
| − | gebaut und installiert werden. Das | + | gebaut und installiert werden. Das Bauen des gcc dauert unter Umständen sehr lange (sind halt ein paar MB Sourcecode). |
== Fertig! == | == Fertig! == | ||
| − | Gratulation, ein Cross-Compiler | + | Gratulation, ein Cross-Compiler für die x86-64-Plattform wurde erstellt! Die Tools befinden sich nun unter /usr/cross/ (in diesem Beispiel) und haben x86_64-elf- als Prefix, Beispiel: x86_64-elf-gcc, x86_64-elf-ld usw. |
[[Kategorie:x86-64]] | [[Kategorie:x86-64]] | ||