**** Merci à Brice Goglin et Abdou Guermouche pour leur aide ! ***** HOWTO: INSTALLER LE CROSS-COMPILER GCC POUR MIPS (POUR LE TD DE SYSTEME) ET COMPILER NACHOS ####################################################################### Plan : 0/ Installation de GCC-3.4 1/ Telechargement des sources de binutils, gcc-2.95 et nachos. 2/ Installation du cross-compiler mips de gcc. 3/ Compilation de NachOS. 4/ Test. ####################################################################### 0/ INSTALLATION DE GCC-3.4 ========================== Il est conseillé d'installer préalablement GCC-3.4. (À vos risques et périls si vous utilisez une version 4.X.) # Installation des binaires (sous Debian): $ apt-get install gcc-3.4 # Modification de la variable d'environnement CC (juste pour 2/b) : $ export CC=gcc-3.4 1/ TELECHARGEMENT PREALABLE =========================== # Telechargement des sources binutils, gcc et nachos. -> $ wget http://graal.ens-lyon.fr/~eagullo/systeme/arch/binutils-2.15.tar.bz2 . $ wget http://graal.ens-lyon.fr/~eagullo/systeme/arch/gcc-20011006.tar.bz2 . $ wget http://graal.ens-lyon.fr/~eagullo/systeme/arch/nachos-scratch.tgz . # Decompression des archives : -> $ tar xjf binutils-2.15.tar.bz2 $ tar xjf gcc-20011006.tar.bz2 $ tar xzf nachos-scratch.tgz 2/ INSTALLATION DU CROSS-COMPILER (sous LINUX) ============================================== a/# installer binutils : -> $ cd binutils-2.15 $ ./configure --prefix=/opt/xgcc --host=i386-linux \ --target=decstation-ultrix $ make $ make install b/# installer gcc : -> $ cd ../gcc-20011006 $ ./configure --host=i386-linux --target=decstation-ultrix \ --with-gnu-as --with-gnu-ld --prefix /opt/xgcc \ --local-prefix /opt/xgcc Création de bibliothèques factices : $ ar rc libgcc.a /dev/null $ ar rc libgcc2.a /dev/null Changer la ligne 58 du fichier sdbout.c qui est #include en #include "gsyms.h". Compilation et installation : $ make LANGUAGES=c $ make install LANGUAGES=c A la fin des appels de make, on a une erreur : make[1]: *** [libgcc2.a] Erreur 1 On complète l'action ainsi non achevée de make install en copiant l'executable du cross-compiler : $ cp gcc/gcc-cross /opt/xgcc/decstation-ultrix/bin/gcc Ouf ! Un cross-compiler tout beau qui fonctionne (au moins) pour compiler NachOS. 3/ COMPILATION DE NACHOS ======================== #0) export CC= # Se déplacer dans le bon repertoire : -> $ cd (des trucs)/nachos-scratch/code/ # Modifier le makefile du sous-dossier test/ : -> $ cd test/ $ vi Makefile dans ce makefile, modifier les lignes definissant le repertoire du cross-compiler, qui commencent par XGCCDIR=/home/eagullo/(etc) en mettant a la place XGCCDIR=/opt/xgcc. # Remonter et compiler : -> $ cd .. $ make Voila, les différents exécutables nachos sont prets. 4/ TEST ======= Par exemple, pour exécuter des programmes utilisateurs, rendez-vous dans userprog/ et lancez votre premier appel système nachos (halt) : $ ./nachos -x ../test/halt