Cómo compilar GDC en FreeBSD usando DMD gracias a un pequeño wrapper

Fuentes: Bootstrapping GDC on FreeBSD with a tiny wrapper around DMD

GDC, el frontend de D para el compilador GCC, no dispone de un paquete oficial en FreeBSD. El Dr. Brian Robert Callahan necesitaba esa herramienta como soporte de su investigación y, ante la ausencia de documentación práctica, documenta él mismo el procedimiento que ideó para compilarla en el sistema.

El autor aprovecha que DMD, el compilador de referencia del lenguaje D, puede compilar la etapa inicial de GDC siempre que se traduzcan las diferencias de banderas entre ambos compiladores. Para automatizar esa traducción escribió un programa muy pequeño, gdc-wrapper, disponible en su repositorio de GitHub. Esta utilidad se limita a reescribir banderas como -o por -of, -finline por -inline o -fversion= por -version=, ignora las advertencias y maneja de forma específica los parámetros -MF y -MT, que generan archivos de dependencias. Una vez colocada en el PATH, basta con descargar los binarios de DMD para FreeBSD x86_64, construir gdc-wrapper con configure y make, y lanzar la compilación de GCC para obtener un GDC funcional.

Con este método, Callahan consigue compilar GDC 15.2.0 y GDC 16.1.0 en FreeBSD 15 en cuestión de segundos de configuración, frente a las horas que llevaría compilar una versión antigua de GCC para usarla comobootstrap de la nueva. El procedimiento, según explica, también puede servir a usuarios de NetBSD, GNU Hurd, Illumos o distribuciones de Linux que no empaqueten GDC. La limitación actual es que DMD solo genera código para arquitecturas x86 y x86_64, aunque ya está en desarrollo un backend para ARM64. Para otras CPU, el autor remite a sus publicaciones anteriores sobre la construcción de un GDC cruzado como paso previo.