Desarrolladores de FreeBSD Un plan para eliminar GCC 4.2.1 del código fuente del sistema base de FreeBSD. Los componentes de GCC se eliminarán antes de la rama de FreeBSD 13, que incluirá únicamente el compilador Clang. GCC aún se puede instalar desde los ports que lo ofrecen. , и , así como aquellos ya clasificados como obsoletos , , и .
Las arquitecturas que dependen de GCC y no pueden migrar a Clang tendrán la opción de migrar a cadenas de herramientas externas instaladas desde los ports. Como preparación para la eliminación de GCC del sistema base, se planea mejorar la integración del sistema de compilación del sistema base con las cadenas de herramientas externas. Por ejemplo, para la arquitectura amd64, el sistema de integración continua ya se ha actualizado para permitir la compilación con gcc 6.4 desde los ports, lo que puede servir de base para migrar otras arquitecturas.
Como recordatorio, a partir de FreeBSD 10, el sistema base para las arquitecturas i386, AMD64 y ARM se cambió al compilador Clang predeterminado y a la biblioteca libc++, desarrollada por el proyecto LLVM. GCC y libstdc++ para estas arquitecturas dejaron de compilarse como parte del sistema base, pero continuaron compilándose por defecto para las arquitecturas powerpc, mips, mips64 y sparc64, y también podían instalarse durante una reconstrucción mediante los indicadores WITH_GCC y WITH_GNUCXX. Se requería la versión 4.2.1 de GCC debido a restricciones de licencia.
FreeBSD no pudo actualizarse a una versión más nueva de GCC porque, a partir de la versión 4.2.2, GCC fue La licencia GPLv3 y la integración con GCC 4.2.2 se vieron obstaculizadas por la incompatibilidad de los componentes de ejecución de GCC con la licencia BSD. Posteriormente, en GCC 4.4, se solucionó esta incompatibilidad. , pero agregar componentes con licencia GPLv3 al sistema base de FreeBSD fue debido a contradicciones con y la renuencia a imponer restricciones adicionales a los usuarios, como la prohibición .
El proceso de eliminación de GCC del sistema base se dividirá en varias etapas y durará nueve meses, lo que dará tiempo a los desarrolladores de arquitecturas específicas de GCC (PowerPC, Mips, Mips64 y Sparc64) para migrar a Clang o usar cadenas de herramientas externas. La primera etapa comenzará el 31 de agosto y supondrá la exclusión de gcc 4.2.1 del sistema de compilación de integración continua, la eliminación del indicador "-Werror" para las plataformas específicas de GCC y la desactivación predeterminada de las compilaciones de GCC al ejecutar "make universe".
El 31 de diciembre de 2019, GCC se deshabilitará de forma predeterminada, pero se podrá reactivar especificando ciertas opciones. El 31 de marzo de 2020, GCC se eliminará del repositorio de SVN, y el 31 de mayo, todas las plataformas no cubiertas por el sistema de integración continua, que no sean compatibles con LLVM o que no se hayan migrado al uso de herramientas de compilación externas se eliminarán de SVN. El 31 de julio de 2020, se eliminarán definitivamente de SVN todas las plataformas restantes que requieren herramientas externas pero no son compatibles con los scripts de lanzamiento.
Fuente: opennet.ru
