Bootstrap de Rust avec GCC : une odyssée de débogage
2025-07-07
Cet article détaille le parcours de l'auteur pour bootstrapper le compilateur Rust en utilisant GCC au lieu de LLVM. Le processus a été semé d'embûches, avec trois bugs majeurs : l'attribut `#[inline(always)]` sur les fonctions récursives, une implémentation incorrecte du terminateur SwitchInt 128 bits et un accès mémoire non aligné. En utilisant une approche de débogage de type « lobotomie », l'auteur a progressivement identifié et corrigé ces problèmes, réussissant une compilation de l'étape 2 et progressant vers l'étape 3. L'article partage des techniques de débogage, comme l'utilisation de core dumps pour analyser les plantages, et explore les complexités des optimisations du compilateur.
Développement