A propos des symboles de déboguage

La plupart des programmes et des bibliothèques sont compilés par défaut avec les symboles de déboguage et un niveau d'optimisation de 2 (options de gcc -g et -O2), et sont prévus pour un CPU spécifique. Sur les plateformes Intel, les logiciels sont compilés pour les processeurs i386 par défaut. Si vous ne désirez pas faire fonctionner les logiciels sur d'autres machines que la vôtre, vous pouvez envisager de modifier les options par défaut du compilateur pour qu'il effectue les compilations avec un meilleur niveau d'optimisation, sans symboles de déboguage, et génère du code pour votre architecture spécifiquement. Expliquons d'abord ce sont les symboles de déboguage.

Un programme compilé avec des symboles de déboguage signifie que vous pouvez exécuter un programme ou une bibliothèque via un débogueur, et que les résultats du débogueur seront facilement utilisables. Ces symboles de déboguage augmentent également la taille du programme ou de la bibliothèque de façon significative.

Pour supprimer les symboles de déboguage d'un fichier binaire (qui doit être un binaire de type a.out ou ELF), lancez strip --strip-debug filename. Vous pouvez utiliser des jokers si vous devez supprimer les symboles de déboguage de plusieurs fichiers (utilisez quelque chose comme strip --strip-debug $LFS/usr/bin/*). Une autre possibilité, plus facile, est de compiler les programmes sans les symboles de déboguage. La plupart des gens n'utiliseront sans doute jamais un débogueur sur leurs logiciels, donc enlever ces symboles vous fera gagner beaucoup de place disque.

Avant que vous vous demandiez si ces symboles de déboguage feront une grande différence, voici quelques statistiques:

Les tailles peuvent différer selon le compilateur utilisé et la version de la bibliothèque C utilisée pour lier les programmes dynamiques, mais vos résultats seront similaires si vous comparez les programmes avec et sans symboles de déboguage. Après avoir terminé ce chapitre et supprimé tous les symboles de déboguage de tous les binaires et bibliothèques LFS, je regagné quelques 102Mo d'espace disque. Belle différence!