Microordenadores - Desarrollos modernos para sistemas retro

OpenBSD cambia el compilador por defecto de GCC a clang en las arquitecturas i386 y amd64
27 de Julio de 2017

OpenBSD acaba de cambiar en la rama de desarrollo el compilador por defecto de GCC a Clang/LLVM para las arquitecturas i386 y amd64, manteniendo GCC 4 en el sistema base. Este cambio también se aplica a la compilación de ports, aunque todavía se usa GNU ld.

El motivo del cambio es, fundamentalmente, debido a la licencia y a que como los compiladores son frágiles es bueno no depender sólo de uno. La de LLVM es mucho menos restrictiva que la GPL del compilador GCC, y encaja más con la política de licencias de OpenBSD, que defiende que el código pueda ser usado para cualquier propósito sin obligar a liberar el código fuente si se realizan cambios.

El proyecto OpenBSD prefiere las licencias de tipo ISC o Berkeley, siendo la licencia GPL no aceptable, aunque aún quedan partes del sistema con esta licencia como GCC, fundamentalmente para seguir soportando hardware exótico como Sparc64 y otras arquitecturas. Los motivos son simples: la intención de OpenBSD es proveer de código que pueda ser libremente usado, copiado, modificado y distribuido por cualquier persona para cualquier propósito. Su plantilla de licencia es sencilla y no hay que ser un licenciado en derecho para entenderla.

No todo es perfecto, ya que el tema de la licencia en Clang/LLVM no está claro, y hace unos meses ha habido una gran polémica sobre el cambio en la licencia de Clang a una más restrictiva, concretamente a la licencia Apache 2.0, sobre lo que Theo de Raadt, líder de OpenBSD ha respondido en la lista de correo anunciando que clang está muerto si hacen ese cambio, como ocurrió con CSRG.

Diferencias técnicas entre clang y GCC

Aparte de la licencia, una importante diferencia es que Clang está escrito en lenguaje C++ en vez de en C. GCC soporta muchas más arquitecturas, por lo que todo apunta a que seguirá durante mucho tiempo en OpenBSD.

El proceso de compilación es más lento en Clang y se han reportado diferencias de un 340% más de lentitud en una máquina i7-2600 a 3.40Ghz.

Fuentes


Contenido relacionado: