El escenario: La serie 2.95 de GCC es una liberación oficial de GNU y la verseión 2.95.3 de GCC es la serie más libre de errores que existe. Nunca se han tenido problemas de compilación derivados de gcc-2.95.3. Comenzando con Red Hat Linux 7.0, Red Hat fue incluida una versión de CVS fuertemente parcheada de GCC en sus distribuciones y fue denominada 2.96. Red Hat incluyó esta versión en su distribución porque GCC 3.0 no estaba finalizada en ese momento, y necesitaban un compilador que funcionase bien en todas las plataformas soportadas, incluyendo IA64 y s390. El distribuidor de Linux Mandrake también siguió el ejemplo de Red Hat y comenzó a llevar GCC 2.96 en su serie Linux-Mandrake 8.0.
Los hechos: El equipo GCC renuncian cualquier vinculación con GCC 2.96 y publican una respuesta oficial sobre GCC 2.96. Algunos desarrolladores alrededor del mundo comienzan a tener problemas con GCC 2.96, y empiezan a recomendar otros compiladores. Ejemplos son MySQL, y avifile. Otros enlaces interesantes son noticias instantáneas acerca del kernel de Linux 2.4.17 y Voy Forum. MPlayer también sufre problemas intermitentes que son resueltos cambiando entre diferentes versiones de GCC. Varios proyectos empiezan a implementar variaciones de algunos aspectos de 2.96, pero se niegan a arreglar problemas de otras personas, especialmente porque algunos arreglos pueden implicar pérdidas de rendimiento.
GCC 2.96 no permite caracteres | (tuberías) en comentarios en ensamblador porque esto lo hace Intel igual que la sintaxis de AT&T y el caracter | es un símbolo en la variante Intel. El problema es que silenciosamente ignora el bloque de ensamblador por completo. Esto es supuestamente corregible ahora, GCC imprime un mensaje de advertencia en lugar de saltarse el bloque.
El presente: Red Hat dice que GCC 2.96-85 y superior están arreglados. La situación ha sido mejorada, pero se siguen viendo informes de problemas en nuestras listas de correo que desaparecen con un compilador diferente. En cualquier caso esto no tiene más importancia. Alegremente, un maduro GCC 3.x ha resuelto bien los problemas. Si desea compilar con 2.96 puede indicar el parámetro --disable-gcc-checking a configure. Recuerde que que es elección suya y no informe de problemas. Si lo hace será expulsado de nuestras listas de correo porque ha sido avisao de manera más que suficiente de las guerras con GCC 2.96. Por favor, déjenos contarle el resto.
Si tiene problemas con GCC 2.96, puede obtener los paquetes 2.96-85 del servidor ftp de Red Hat, o vaya directamente a por los paquetes gcc-3.2.3-11 (no oficiales, pero funcionan bien) y puede instalarlos junto con gcc-2.96 si ya lo tiene. MPlayer detectará y usará 3.2 en lugar de 2.96. Si no desea o no puede usar los paquetes binarios, aquí tiene cómo compilar GCC 3 desde el código fuente:
Vaya a la web de sitios espejo de GCC y descargue gcc-core-XXX.tar.gz donde XXX es el número de versión. Esto incluye el compilador C completo y es suficiente para MPlayer. Si también quiere C++, Java, o algunas de las otras características avanzadas de GCC, gcc-XXX.tar.gz suplirá mejor sus necesidades.
Extraiga el fichero con
tar -xvzf gcc-core-XXX.tar.gz
GCC no es construido dentro del directorio del código fuente como la mayoría de los programas, sino que necesita un directorio fuera donde compilarse. Por eso necesita crear ese directorio via
mkdir gcc-build
Entonces puede proceder a configurar gcc en el directorio build, pero puede que necesite configurar desde el directorio de fuentes:
cd gcc-build ../gcc-3.XXX/configure
Compile GCC usando esta orden en el directorio build:
make bootstrap
Ahora puede instalar GCC (como root) escribiendo
make install