Desarrolladores de FreeBSD plan de eliminación de GCC 4.2.1 de los textos fuente del sistema base de FreeBSD. Los componentes de GCC se eliminarán antes de la bifurcación de la rama FreeBSD 13, que incluirá solo el compilador Clang. GCC podrá ser instalado si se desea desde los puertos, donde se ofrece , y , así como ya se ha clasificado como obsoleto , , y .
Las arquitecturas que dependen de GCC y no pueden migrar a Clang se les propondrá utilizar herramientas externas instaladas desde los puertos. En preparación para la eliminación de GCC del sistema base, se planea trabajar en mejorar la integración del sistema de compilación del sistema base con herramientas externas. Por ejemplo, para la arquitectura amd64, ya se ha añadido la posibilidad de compilar utilizando gcc 6.4 desde los puertos en el sistema de integración continua, lo que puede ser utilizado como base para la migración de otras arquitecturas.
Recordemos que desde FreeBSD 10, el sistema base para arquitecturas i386, AMD64 y ARM se ha trasladado a la entrega por defecto del compilador Clang y la biblioteca libc++ desarrollada por el proyecto LLVM. GCC y libstdc++ para las arquitecturas mencionadas dejaron de compilarse como parte del sistema base, pero continuaron estando disponibles por defecto para las arquitecturas powerpc, mips, mips64 y sparc64, y también podrían ser instalados al recompilar con las banderas WITH_GCC y WITH_GNUCXX. La entrega de la versión obsoleta GCC 4.2.1 se debió a restricciones de licencia.
FreeBSD no pudo migrar a una versión más reciente de GCC, dado que a partir de la versión 4.2.2 GCC fue a la licencia GPLv3 y la integración de GCC 4.2.2 se obstaculizó por la incompatibilidad de los componentes de tiempo de ejecución de GCC con la licencia BSD. Más tarde, en la versión GCC 4.4, esta incompatibilidad , pero la inclusión en el sistema base de FreeBSD de componentes bajo la licencia GPLv3 fue debido a las contradicciones con y a la renuencia a imponer restricciones adicionales a los usuarios, como la prohibición de .
El proceso de eliminación de GCC del sistema base se dividirá en varias etapas y durará 9 meses, lo que dará a los desarrolladores vinculados a arquitecturas de GCC (powerpc, mips, mips64 y sparc64) tiempo para migrar a Clang o cambiar a herramientas externas. La primera etapa comenzará el 31 de agosto y llevará a la exclusión de gcc 4.2.1 de la compilación en el sistema de integración continua, así como a la interrupción del uso de la bandera "-Werror" para las plataformas vinculadas a GCC y la desactivación predeterminada de la compilación de GCC al ejecutar "make universe".
El 31 de diciembre de 2019, la compilación de GCC se deshabilitará de forma predeterminada, pero podrá ser restaurada especificando ciertas banderas. El 31 de marzo de 2020, GCC será eliminado del repositorio SVN, y el 31 de mayo se eliminarán todas las plataformas del SVN que no estén cubiertas por el sistema de integración continua, que no admitan LLVM o que no se hayan migrado a herramientas de compilación externas. El 31 de julio de 2020, se realizará la eliminación final del SVN de todas las plataformas restantes que requieran el uso de herramientas externas, pero que no estén soportadas en los scripts de generación de versiones.
Fuente: opennet.ru
