Compiler un cross-compilateur C (seulement) pour compiler un noyau sur processeur nu
Ces notes sont à adapter en fonction de la version de
gcc et de la machine cible. Elles ont été écrites principalement pour permettre la compilation de
SOS et de
KOS depuis des machines non-x86.
La principale difficulté est de trouver le
target qui va bien. Avec
i586-pc-gnu par exemple,
gcc voudra compiler le runtime C (
crtX), ce qui nécessite un bootstrap de la
libC. On préfère éviter ça ici, c'est pour cela qu'on choisit le target
i586-pc-elf.
"Recette" pour fabriquer le cross-compilateur
Plate-formes hôtes utilisées pour ces notes :
- Linux/ppc (ibook G3, Linux 2.6.11)
- Linux/x86_64 (amd64, Linux 2.6.14.3)
- Cygwin/win32/x86 (voir plus bas)
Devrait fonctionner sur n'importe quel Unix.
Première étape : binutils (testé avec binutils 2.16)
- ./configure --target=i586-pc-elf --prefix=....
- make