Estimación del tiempo de construcción: 9.48 SBU Estimación del espacio de disco requerido: 326 MB |
Este paquete necesita que le apliques un parche antes de poder instalarlo. Asegúrate de desempaquetarlo antes de ejecutar los comandos de instalación.
Se sabe que este programa se comporta mal si cambias sus parámetros de optimización (incluyendo las opciones -march y -mcpu). Es mejor dejar a GCC tal como está. Por esta razón, si tienes definida cualquier variable de entorno que pueda sobreescribir las optimizaciones por defecto, como CFLAGS o CXXFLAGS, recomendamos quitarlas o modificarlas cuando construyas GCC. Estás avisado.
Instala GCC ejecutando los siguientes comandos:
patch -Np1 -i ../gcc-3.2.patch && patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure --prefix=/static --enable-languages=c \ --disable-nls --disable-shared && echo "#define HAVE_GAS_HIDDEN 1" >> gcc/auto-host.h && make BOOT_LDFLAGS=-static bootstrap && make prefix=$LFS/static install && ln -s gcc $LFS/static/bin/cc |
patch -Np1 -i ../gcc-3.2.patch: Este parche corrige varios errores. En particular contiene el "copy fix" y el "var fix" documentados en http://www.zipworld.com.au/~gschafer/lfs-tweaks.html.
patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch: Esto evita que se ejecute el guión fixincludes.
--prefix=/static: Esto NO es un error tipográfico. GCC establece directamente algunas rutas durante la compilación y por eso necesitamos pasar /static como prefijo a ./configure. Pasamos el prefijo real de instalación posteriormente a "make install".
--enable-languages=c: Con esto sólo se construye el compilador C. El compilador C++ se construirá en el Capítulo 6, cuando reconstruyamos GCC. También están disponibles otros compiladores. Si se necesitan esos otros compiladores, el parámetro --enable-languages debe omitirse.
echo "#define HAVE_GAS_HIDDEN 1": Esto define la directiva de ensamblador .hidden para que no construyamos más tarde una Glibc con errores.
make BOOT_LDFLAGS=-static: Esto es el equivalente al "make LDFLAGS=-static" que usamos con otros paquetes para compilarlos estáticamente
ln -s gcc $LFS/static/bin/cc: Esto crea el enlace simbólico $LFS/static/bin/cc que necesitan algunos paquetes.
Última versión comprobada: 3.1.
c++, c++filt, cc (enlace a gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov y tradcpp0
Estos programas forman el compilador de C. Un compilador convierte el código fuente en formato de texto a un formato que un ordenador pueda entender. Después de que un fichero de código fuente es compilado en un fichero objeto, un enlazador creará un fichero ejecutable a partir de uno o más de estos ficheros objeto generados por el compilador.
El lenguaje C++ proporciona sobrecarga de funciones, lo que significa que es posible escribir varias funciones con el mismo nombre (suponiendo que cada una tome parámetros de diferente tipo). Todos los nombres de funciones C++ son codificadas dentro de una etiqueta de bajo nivel del ensamblador (este proceso es conocido como "mangling"). El programa c++flit hace lo contrario: decodifica (demangling) nombres de bajo nivel en nombres de nivel de usuario para que el enlazador pueda evitar conflictos en estas funciones sobrecargadas.
cpp preprocesa un fichero fuente, por ejemplo la inclusión del contenido de los ficheros de cabecera en el fichero fuente. Simplemente, añade una línea del tipo #include <fichero> a tu fichero fuente y el preprocesador insertará el contenido del fichero incluido dentro del fichero fuente.
gccbug es un guión del interprete de comandos que se usa para simplificar la creación de notificaciones de errores.
libiberty es una colección de subrutinas usadas por muchos programas GNU, incluidos getopt, obstack, strerror, strtol y strtoul.
libstdc++ es la librería C++. Es utilizada por programas escritos en C++ y contiene funciones que son usadas frecuentemente por esos programas. De esta forma el programador no necesita escribir ciertas funciones (como la escritura de una cadena de texto en pantalla) desde el principio cada vez que crea un programa.
Última versión comprobada: 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr