Ontwerp en bouw een besturingssysteem/Werkomgeving en hulpmiddelen/Toolchain/Linux
Onder Linux is het gemakkelijk om een cross-platform toolchain aan te leggen.
Bronbestanden downloaden
bewerkenOm een cross-platform toolchain te maken moeten de oorspronkelijke programma's opnieuw gecompileerd worden. Hiervoor is de oorspronkelijke broncode nodig. Bestanden met een .tar.gz en .tar.bz2 extensie zijn gecomprimeerde archieven zoals .zip, en worden veel gebruikt op Linux en Unix systemen.
- Download het gcc-x.x.x archief met de laatste versie van GCC van ftp.gnu.org
- Download het binutils-x.xx archief met de laatste versie van Binutils van ftp.gnu.org
- Pak beide archieven uit in de /usr/src map van de installatie.
Voorbereiding
bewerkenEr moeten nog wat voorbereiding gedaan worden, zoals het aanmaken van de mappen build-binutils en build-gcc in de /usr/src map. Voer de volgende opdrachten uit, elke regel gevolgd door een Enter waarna de computer even bezig gaat. Er verschijnt niet altijd een bevestiging.
cd /usr/src mkdir build-binutils build-gcc
Binutils compileren
bewerkenNu moet eerst binutils worden gecompileerd. Voer de volgende opdrachten uit. De make all opdracht kan meer dan een half uur duren. Merk op dat voor x.xx het juiste versienummer moet worden ingevuld.
cd /usr/src/build-binutils export PREFIX=/usr/local/cross export TARGET=i586-elf ../binutils-x.xx/configure --target=$TARGET --prefix=$PREFIX --disable-nls make all make install
Tip! Als je ../binutils- hebt getypt, druk dan op Tab. De shell vult het automatisch aan tot ../binutils-x.xx/ waarbij x.xx het juiste versienummer is. |
GCC compileren
bewerkenNu kan gcc worden gecompileerd. Voer de volgende opdrachten uit. De make all-gcc opdracht kan meer dan een uur duren.
cd /usr/src/build-gcc export PREFIX=/usr/local/cross export TARGET=i586-elf export PATH=$PATH:$PREFIX/bin ../gcc-x.x.x/configure --target=$TARGET --prefix=$PREFIX --disable-nls --enable-languages=c,c++ --without-headers make all-gcc make install-gcc
LibGCC compileren
bewerkenHet is ook handig om libgcc te compileren. LibGCC is de GCC low-level runtime-bibliotheek en bevat onder andere integer, floating-point en stack unwinding functionaliteit.
cd /usr/src/build-gcc export PREFIX=/usr/local/cross export TARGET=i586-elf export PATH=$PATH:$PREFIX/bin make all-target-libgcc make install-target-libgcc
PATH configureren
bewerkenOm ervoor te zorgen dat de nieuwe gecompileerde programma's uit de cross-platform toolchain direct kunnen worden aangeroepen, moet je de volgende regel toevoegen aan het eind van het .profile bestand in je home directory (~/.profile):
.profile
... PATH="/usr/local/cross/bin:$PATH"
Mogelijk moet je even uitloggen en opnieuw inloggen om de verandering aan het PATH toe te passen. Nu is alles klaar. Om een programma uit de cross-platform toolchain te gebruiken in plaats van de oorspronkelijke versie, zet je er i586-elf- voor, bijvoorbeeld i586-elf-ld in plaats van ld.