Copyright Copyright © José Luis Lara Carrascal 2007-2024 Sumario Introducción Instalar GCC 14.2.0 Configurar el sistema para el uso de GCC 14.2.0 Establecer el RPATH correspondiente Optimizaciones de CPU para GCC Niveles de optimización soportados por GCC Optimizaciones adicionales para GCC Instalar GCC 11.3.0 Configurar el sistema para el uso de GCC 11.3.0 Instalar GCC 6.5.0 Configurar el sistema para el uso de GCC 6.5.0 Enlaces Instalar GCC 6.5.0 Instalación Dependencias Herramientas de Compilación Entre paréntesis la versión con la que se ha compilado GCC 6.5.0 para la elaboración de este documento. * GCC - (8.2.0) * Gawk - (4.2.1) * M4 - (1.4.18) * Libtool - (2.4.6) * Make - (4.2.1) * Pkg-config - (0.29.2) * Bison - (3.1) * Flex - (2.6.4) * Automake - (1.16.1) * Autoconf - (2.69) * Gettext - (0.19.8.1) * Gperf - (3.1) * Texinfo - (6.5) Librerías de Desarrollo * Gmp - (6.1.2) * Mpfr - (4.0.1) * Mpc - (1.1.0) * ISL - (0.18) * GLib - (2.58.1) * GTK+ - (2.24.32) * Libart - (2.3.17) Descarga gcc-6.5.0.tar.xz | ecj-4.9.jar Extracción y Configuración
Explicación de los comandos cp ecj-4.9.jar gcc-6.5.0/ecj.jar : Copiamos el archivo jar que contiene el compilador Java de Eclipse al directorio raíz del código fuente de GCC. Dicho compilador es utilizado por GCJ para analizar los archivos de código fuente escritos en Java. En el proceso de instalación, dicho archivo será ubicado en /opt/gcc6/share/java/ecj.jar, y GCJ lo utilizará a través de un ejecutable binario ubicado en la ruta /opt/gcc6/libexec/gcc/{arquitectura}/6.5.0/ecj1. mkdir gcc-build_6.5.0 : Creamos un directorio de compilación, ya que GCC no permite que se compile directamente en el directorio de las fuentes. export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH : Establecemos la variable de entorno PKG_CONFIG_PATH correspondiente para poder compilar correctamente el lenguaje de programación Java, en sistemas de 64 bits multiarquitectura. El error que soluciona es el siguiente:
Si no tenemos pensado compilar el soporte de 32 bits, dicha variable de entorno no es necesario establecerla. --enable-shared : Compila las librerías compartidas. --enable-threads=posix : Selecciona la librería genérica POSIX/Unix98 para el soporte de hilos. --enable-__cxa_atexit : Opción necesaria para una correcta compilación de c++. --enable-clocale=gnu : Evita un error en la generación de las locales, en el caso de que estén incompletas. --enable-languages=fortran,java,objc : Compila los lenguajes de programación Fortran, Java, y Objetive C, además de los predefinidos, C y C++. --enable-java-awt=gtk : Añade el soporte de AWT con GTK+ como librería de interfaz gráfica a Libgcj. --prefix=/opt/gcc6 : Instala el compilador en /opt/gcc6. --program-suffix=6 : Añadimos un sufijo a los binarios ejecutables instalados para poder diferenciarlos de otras versiones de GCC que tengamos instaladas en nuestro sistema, empezando por la principal del mismo. Parámetros de configuración opcionales --disable-bootstrap : Si por la razón que sea, tenemos que volver a recompilar el paquete, utilizando el mismo compilador de la versión que vamos a instalar, añadiendo esta opción evitaremos que los lenguajes C y C++ se recompilen a sí mismos, y anularemos el proceso predefinido de compilación en tres fases. Si la versión utilizada es de la misma serie, también se puede utilizar esta opción. Realizar antes una copia de seguridad de la versión instalada, porque la instalación de la nueva versión sobrescribirá los archivos de la misma. --with-default-libstdcxx-abi=gcc4-compatible : Hace compatible la versión de Libstdc++ de esta versión, con binarios compilados con versiones de la serie 4 de GCC y versiones inferiores a la 3.9 de Clang, además de las versiones superiores de GCC que se hayan compilado con esta misma opción de configuración del paquete. --disable-multilib : Si no tenemos intención alguna de compilar código de 32 bits en sistemas de 64 bits multiarquitectura, con esta versión concreta de GCC, añadiremos esta opción para acelerar la compilación del paquete. Compilación
Parámetros de compilación opcionales
Borrar las locales adicionales instaladas
Estadísticas de Compilación e Instalación de GCC 6.5.0 Desinstalación como root 1) MODO TRADICIONAL En el directorio de compilación ejecutamos el siguiente comando:
2) MODO MANUALINUX gcc-6.5.0-scripts.tar.gz
La desinstalación del compilador no incluye las librerías compartidas (.so) para evitar problemas de dependencias en el caso de que hayamos compilado algún programa con esta versión de GCC. Copia de Seguridad como root
Restaurar la Copia de Seguridad como root
Soporte de optimizaciones para nuevos procesadores en GCC 6 En GCC 6 se añade soporte de optimizaciones para los siguientes procesadores:
Configurar el sistema para el uso de GCC 6.5.0 1) /etc/ld.so.conf Añadimos la ruta a las librerías en el archivo /etc/ld.so.conf.
Cuando lo hayamos editado y guardado ejecutamos la actualización de la caché de las librerías compartidas.
2) Añadir la ruta a los binarios y las páginas de manual a nuestro PATH 2a) Variable de entorno PATH de usuario Editamos el archivo de nuestro home, ~/.bashrc (si no existe lo creamos) y añadimos lo siguiente al final del mismo.
Si estamos siguiendo el manual lo añadimos a la variable de entorno anterior.
2b) Variable de entorno PATH del sistema Si queremos establecer una variable de entorno global del sistema, abrimos un editor de texto y añadimos lo siguiente.
Si estamos siguiendo el manual lo añadimos a la variable de entorno anterior.
Lo guardamos con el nombre gcc.sh, y lo instalamos en /etc/profile.d.
Tenemos que cerrar el emulador de terminal y volverlo a abrir para que la variable de entorno aplicada sea efectiva. Es conveniente guardar una copia de este script para posteriores instalaciones de nuestro sistema. La ventaja de utilizar el directorio /etc/profile.d es que es común a todas las distribuciones y nos evita tener que editar otros archivos del sistema como por ejemplo, /etc/profile. 2c) Lectura de las páginas de manual
3) Uso de GCC 6.5.0 Esto está ampliamente explicado en este apartado, sólo cambia el número del sufijo de la versión a utilizar.
En cuanto a la creación de los alias de Bash para facilitar la ejecución de las variables. Abrimos con un editor de texto, el archivo de configuración personal, ~/.bashrc, si no existe lo creamos, y añadimos lo siguiente al final del contenido del mismo:
Para el caso específico que ya explico más arriba de uso de compilador Fortran con las GNU Autotools, añadimos lo siguiente:
Y si queremos añadir también alias para las variables de entorno LDFLAGS para establecer el RPATH correspondiente, en compilación de código escrito en C++, Fortran, y compatible con OpenMP, nos quedaría así:
En sistemas de 64 bits multiarquitectura los complementamos con los siguientes alias, para el modo de compilación de 32 bits.
Enlaces Compiladores Caché - Ccache >> Manual de instalación y configuración de Ccache, un compilador caché que puede llegar a acelerar el tiempo de recompilación de los programas escritos en C y C++, hasta 10 veces. Compiladores Caché - F90cache >> Manual de instalación y configuración de F90cache, la versión para Fortran de Ccache. Utilidades - PatchELF >> Manual de instalación y configuración de PatchELF, una utilidad de línea de comandos, que permite modificar el cargador dinámico predefinido, y la ruta de búsqueda preferente (RPATH) de las dependencias binarias de un ejecutable en formato ELF. http://gcc.gnu.org >> La web de GCC. |