[Kos-dev] Re: Compilation AMD64

Thomas Petazzoni thomas.petazzoni at enix.org
Mon May 16 21:26:03 CEST 2005


Salut,

Tout d'abord, désolé de la réponse tardive à ton message, et merci de
t'intéresser à KOS, ça fait plaisir !

s[e]th & h[o]lth a écrit :

> Je revient parmi vous pour vous exposez la façon que j'ai choisit pour compiler 
> kos et le faire touner sous qemu
> Je suis sur une architecture x86_64 et il a donc fallu que je trouve un moyen de 
> compiler le projet puisque les sources ne sont pas compilable pour cette cible.
> Ainsi, au lieu de passer par la construction d'un cross-compiler, j'ai décidé 
> d'utiliser certains flags du couple gcc/ld pour arriver à obtenir le noyau kos.
> En effet, le compilateur x86_64 surpporte une option -m32 pour compiler en 32 
> bits (et non en 64bits par défaut) de meme que ld supporte l'option -m elf_i386
> Ainsi, j'ai mis dans .mkvars la configuration suivante :
> --- .mkvars ----------
> CC = gcc -m32
> LD = ld -m elf_i386
> -------------------------

Ok, très bien. Effectivement, je pense que les compilos pour plateformes
x86_64 peuvent générer du code i386 classique. Néanmoins, je ne suis pas
du tout un spécialiste des architectures 64 bits, tu en connais
apparemment plus que moi sur le sujet.

Comme tu le dis, l'autre solution, c'est de générer un cross-compilo, ce
qui est un peu plus délicat, mais reste faisable avec des outils comme
«buildroot» ou «crosstool».

> Ainsi, pour pouvoir partir sur des bases saines, quel est, à votre avis, le 
> problème avec ./loader/mod_check ?

Le problème à mon avis, c'est que mod_check n'a jamais été exécuté sur
une archi 64 bits (d2 l'a déjà fait fonctionné sur Sparc et PowerPC,
mais en 32 bits). Il doit donc y avoir un bug dans le code. Peux-tu le
compiler avec -g, et lancer la chose dans gdb ?

Sinon, pour les explications, mod_check est un petit outil qui vérifie
que tous les symboles importés dans les modules trouvent un symbole
exporté correspondant. À l'époque où Bochs était la seule solution
d'émulation et était très lent, c'était pénible de devoir booter x fois
pour s'apercevoir que tel ou tel symbole n'est pas défini.

Par ailleurs, mod_check calcule les adresses des différents symboles en
mémoire, ce qui peut être utile pour le déboguage avec Bochs ou Qemu.

N'hésites pas à nous faire part de tes avancées avec mod_check sur archi
64 bits !

Bonne soirée,

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni at enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni at jabber.dk
KOS: http://kos.enix.org/ - SOS: http://sos.enix.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : http://the-doors.enix.org/pipermail/kos-dev/attachments/20050516/050e098d/signature.pgp


More information about the Kos-dev mailing list