Bonjour,

Je cherche à compiler le micro-noyau Fiasco (Fiasco µKernel), et la runtime qui va avec (L4Re).

Cependant, j'ai quelques problèmes de compilation, et dans la FAQ de L4Re, je trouve une réponse à mon problème :
L4Re FAQ wrote:Link errors similar to: /usr/lib/gcc/i686-redhat-linux/4.4.4/libgcc_eh.a(unwind-dw2.o): In function `.L107': (.text+0xb79): undefined reference to `__stack_chk_fail_local'
You're using Fedora/Redhat. Currently, consider switchting to Debian. [Nov 2010]
Après avoir trainé un peu sur le net, j'ai souvent vu indiqué qu'il fallait indiquer -fno-stack-protector à GCC pour éviter ça, mais ça ne fonctionne pas...
J'avoue avoir essayer pas mal de chose (repasser à GCC 3.4, forcer l'option -fno-stack-protector dans le Makefile, ...) mais rien n'y fait.

Je vais installer une Debian sur une machine virtuelle, mais ce que j'aimerai savoir, c'est quelle différence peut-il y avoir entre la version Debian et la version Fedora de GCC, qui fait qu'on ne puisse pas résoudre ce problème simplement ?

Merci
Thomas
Tu as une erreur lors de l'édition de liens (Link error).
Habituellement, une référence non définie (undefined reference) est manquante lors de cette phase de compilation. IL faut que tu ajoutes un flags de compilation (dans le Makefile en tant que LDFLAGS) au moment précis ou cette erreur apparait pour que ce symbole soit trouvé.

Pour trouver le symbole dont ut as besoin, tu peux faire un grep dans /usr/lib sur le symbol, ce qui donne libc_nonshared.a.
Dont en ajoutant -lc_nonshared en tant que LDFLAGS, tu devrais pouvoir contourner ce problème.
Merci pour la piste, mais j'ai toujours la même erreur...

J'ai essayé toutes les combinaisons possibles de :
CFLAGS="-static-libgcc" (au cas où...) et/ou "-fno-stack-protector"
LDFLAGS="-nostdlib" et/ou "-L/usr/lib64 -lc_nonshared"

Malgré cela, j'ai toujours l'erreur :
undefined reference to `__stack_chk_fail_local'

Je sais que les options sont bien prises en compte car si je fais une faute de frappe, le fait que l'option ne soit pas reconnue est bien signalé.

J'ai fait mon installation de Debian et effectivement ça marche sans soucis directement.
Peut être qu'une option est activée par défaut sous Fedora et pas sous Debian ?