Linux From Scratch: Versión 3.3 | ||
---|---|---|
Anterior | Capítulo 6. Instalando los programas del sistema base | Siguiente |
Muchos programas y librerías son compilados por defecto con símbolos de depuración (opción -g de gcc).
Un programa compilado con símbolos de depuración permite al usuario lanzar un programa o librería a través de un depurador y la salida del depurador será amigable. Estos símbolos de depuración también agrandan el programa o librería de forma significativa.
Antes de que comiences a preguntarte si estos símbolos de depuración realmente producen una gran diferencia, aquí tienes algunas estadísticas. Úsalas para sacar tu propia conclusión.
El binario Bash dinámico con símbolos de depuración: 1.2MB
El binario Bash dinámico sin símbolos de depuración: 478KB
/lib y /usr/lib (los ficheros de glibc y gcc) con símbolos de depuración: 87MB
/lib y /usr/lib (los ficheros de glibc y gcc) sin símbolos de depuración: 16MB
Los tamaños varían dependiendo de qué compilador fue usado y qué versión de la librería C se usó para enlazar dinámicamente los programas, pero los resultados son similares si comparas los programas con y sin símbolos de depuración.
Para eliminar los símbolos de depuración de un binario (debe ser un binario a.out o ELF) ejecuta strip --strip-debug fichero. Pueden usarse comodines para eliminar los símbolos de depuración de múltiples ficheros (puede usarse algo como esto: strip --strip-debug $LFS/usr/bin/*). Mucha gente probablemente nunca use un depurador, por lo que eliminando estos símbolos se puede liberar una buena cantidad de espacio del disco.
Para tu comodidad, en el capítulo 9 se incluye un comando simple para eliminar todos los símbolos de depuración de todos los programas y librerías del sistema.
Puedes encontrar información adicional en la receta de optimización que hay en http://hints.linuxfromscratch.org/hints/optimization.txt .