Compiler en 64 bits sur une machine 32 bits
Le tutoriel que vous vous apprêtez à lire a été écrit par un bénévole, qui a mis à disposition gratuitement son savoir. Malgré le passage à la validation de ce tutoriel, nous ne pouvons garantir la véricité des informations contenues dedans. Merci de garder ceci à l'esprit pendant votre lecture
Youscef, que je remercie, a trouvé une solution pour compiler Logram sur une machine 32 bits, sous Linux.
Voici la marche à suivre :
Installer la librairie 64 bit de GCC
Pour que GCC puisse compiler en 64 bit sur une machine 32 bit, il lui faut une librairie spéciale, qui nous permettra d'utiliser l'option -m64. Voici le code à taper dans une fenêtre terminal :
Code : consolesudo apt-get install lib64gcc1 gcc-multilib
Maintenant que cette librairie est installée, nous allons juste la tester, pour voir si elle marche. Créez donc un fichier test.c ne contenant qu'une fonction main() qui retourne 0. Compilez-le avec la commande suivante :
Code : console
Maintenant, on va voir s'il est bien en 64 bit, pour cela, il nous suffit d'analyser le format ELF de ce fichier test. Voici la commande :
Code : console
Si
Code : console
s'affiche dans la console, c'est que le fichier est bien en 64 bit, vous avez réussi !
Installation des assembleurs
- Téléchargez les sources de la dernière version de nasm (2.x, la 0.x ne sait pas assembler en 64 bit).
- Décompressez l'archive.
- Allez au dossier de nasm avec la commande cd.
- Tapez cette commande :
Code : console./configure --target=x86_64-pc-linux
- Si tout se passe bien, vous pouvez compiler nasm correctement :
Code : consolemake
make strip
sudo make install
- Maintenant, il ne vous reste plus qu'à télécharger fasm ( http://flatassembler.net/download.php ). Décompressez l'archive. Allez au dossier de fasm, et faites :
Code : bash
Voilà une bonne chose de faite

.
Compilation de Logram
Pour compiler Logram, éditez son Makefile "principal" en ajoutant le paramètre -m64 à CFLAGS et -melf_x86_64 à LDFLAGS, puis ouvrez le Makefile qui se trouve dans le dossier boot, et ajoutez -melf_x86_64 à la commande ld (après stage2:).
Ensuite, il vous suffit de le compiler depuis le début :
Code : consolemake clean
make
make makedisk
./makedisk
Voilà, votre Logram est compilé. Détaillons les étapes :
Code : console
permet d'effacer le contenu précompilé de l'archive, comme ça, vous êtes sûr de tout recompiler vous-mêmes.
Code : console
construit Logram
Code : console
compile l'utilitaire makedisk, qui était en version 64 bits dans l'archive. Maintenant, il est en 32 bit.
Code : console
lance makedisk qui va créer disk.img de Logram
Il ne vous reste plus qu'à tester avec Qemu, il n'y a rien de plus simple : il vous suffit de taper :
Code : console
J'espère que j'ai résolu le problème de plusieurs codeurs qui veulent développer pour Logram mais qui n'ont pas un processeur 64 bit.