¿Por qué FreeBSD usa el GCC con licencia GPL?

11

¿Por qué FreeBSD usa GCC como su compilador predeterminado?

Tengo la impresión de que un pilar fundamental de la filosofía de FreeBSD es no utilizar ningún software GNU y, en particular, el código GPL.

Sin embargo, GCC, que es tanto GNU como GPL, viene incluido con FreeBSD.

¿Por qué?

JasonH
fuente

Respuestas:

13

FreeBSD 10 utilizará el compilador Clang con licencia BSD en lugar de GCC para sistemas Intel x86 de 32 y 64 bits. Lo único que impide un cambio total en todas las plataformas de CPU que lanza FreeBSD es el tiempo y el interés del desarrollador.

En cuanto a FreeBSD 9, que estaba a punto de ser lanzado cuando esta pregunta se planteó por primera vez, se habló de hacer de Clang el compilador predeterminado, pero hubo suficientes problemas con él que decidieron enviar Clang junto con GCC y dejar GCC por defecto para este lanzamiento

En cuanto a por qué FreeBSD no intentó pasar a un compilador que no es GPL años antes, o tal vez ni siquiera creó el suyo, la razón es simple: es difícil.

Cualquier estudiante universitario de CS puede escribir un compilador, incluso puede ser un requisito del curso, pero escribir un buen compilador es difícil. Escribir un buen compilador es aún más difícil cuando debe ser para un lenguaje como C o C ++. La tarea se vuelve aún más difícil cuando toma la decisión razonable de que el nuevo compilador necesita al menos acercarse al rendimiento y la capacidad de GCC, que tiene un par de décadas de desarrollo detrás.

Debido a eso, GCC 4.2 sigue siendo el compilador predeterminado en FreeBSD 9.

GCC 3.4, 4.4, 4.6, 4.7 y 4.8 están en el árbol de Puertos de FreeBSD 9, por cierto, y es probable que alguna versión de GCC permanezca en los Puertos por muchos años más. Hay muchos paquetes de software, muchos de los cuales se encuentran en los puertos de FreeBSD, que solo se compilan con GCC.

Warren Young
fuente
1
El compilador no solo debe estar al menos cerca del rendimiento, sino que también deben admitirse las extensiones de idioma. Los desarrolladores suelen utilizarlos por algún motivo (o ninguno ;-))
johannes
8

Es probable que sea por necesidad. Hasta hace poco, los compiladores de C con licencia BSD eran probablemente pocos o no se acercaban a la paridad de características gcc.

De los objetivos del proyecto FreeBSD :

Ese código en nuestro árbol fuente que se encuentra bajo la Licencia Pública General de GNU (GPL) o la Licencia Pública General de Biblioteca (LGPL) viene con un poco más de condiciones, aunque al menos del lado del acceso forzado en lugar de lo contrario. Sin embargo, debido a las complejidades adicionales que pueden evolucionar en el uso comercial del software GPL, preferimos el software presentado bajo los derechos de autor BSD más relajados cuando es una opción razonable para hacerlo.

Brian Cain
fuente