Este artículo explica paso a paso cómo compilar la versión 1.27 del compilador GCC, publicada en 1988 y primera en ofrecer soporte para la arquitectura x86, sobre un sistema Ubuntu de 64 bits moderno. El autor parte del trabajo previo de Mikhail Maltsev, que documentó la compilación de un compilador con 29 años de antigüedad, pero tuvo que adaptar rutas y opciones del ensamblador y enlazador para el entorno de 64 bits, además de resolver incompatibilidades con las cabeceras del sistema. También habilitó el formato de depuración DBX, compatible con GDB moderno, en lugar del SDB de UNIX/32V.
El resultado, según el autor, es sorprendente: el ensamblador, el enlazador y el depurador actuales manejan sin problemas el código generado por GCC 1.27, y opciones conocidas como -O, -E, -S, -c, -g, -W, -pedantic o -fomit-frame-pointer funcionan como en cualquier GCC moderno. La guía detalla los prerrequisitos (instalar gcc-multilib, dado que GCC 1.27 es un programa de 32 bits), la descarga y aplicación del parche, la configuración mediante enlaces simbólicos a los archivos config-i386v.h, tm-i386v.h, i386.md y output-i386.c, y la compilación en dos o tres etapas con verificación final mediante diff entre los binarios. Se ofrece además una nota sobre cómo consultar el manual del compilador con 'man -l gcc.1'. Es un ejercicio de arqueología informática que muestra la compatibilidad binaria y de interfaces del ecosistema GNU tras casi cuatro décadas.
