FreeBSD-udviklere planen for at fjerne GCC 4.2.1 fra kildekoderne i det grundlæggende FreeBSD-system. GCC-komponenterne vil blive fjernet inden for grenene af FreeBSD 13, som kun vil inkludere compileren Clang. GCC kan installeres fra ports, hvis ønskes, , og , samt de der allerede er blevet klassificeret som forældede , , og .
Arkitekturer, der er afhængige af GCC og ikke kan overgå til Clang, vil blive tilbudt at skifte til eksterne værktøjer, der installeres fra ports. I forbindelse med forberedelserne til fjernelsen af GCC fra det grundlæggende system planlægges der at forbedre integrationen af byggeværktøjet i det grundlæggende system med eksterne værktøjer. For eksempel er muligheden for at bygge med gcc 6.4 fra ports allerede blevet tilføjet til det kontinuerlige integrationssystem for amd64-arkitekturen, hvilket kan bruges som grundlag for at oversætte andre arkitekturer.
Det skal huskes, at siden FreeBSD 10 er det grundlæggende system for i386, AMD64 og ARM-arkitekturerne blevet skiftet til som standard at levere Clang-compiler og libc++-biblioteket udviklet af LLVM-projektet. GCC og libstdc++ for de nævnte arkitekturer stoppede med at blive bygget som en del af det grundlæggende system, men fortsatte med at blive leveret som standard for powerpc, mips, mips64 og sparc64-arkitekturerne, og kunne også installeres ved ombygning med flagsene WITH_GCC og WITH_GNUCXX. Leveringen af den forældede version GCC 4.2.1 var forårsaget af licensbegrænsninger.
FreeBSD kunne ikke overgå til en nyere version af GCC, da den siden version 4.2.2 var til GPLv3-licensen, og integrationen af GCC 4.2.2 blev hindret af inkompatibilitet mellem runtime-komponenterne i GCC og BSD-licensen. Senere, i version GCC 4.4, blev denne inkompatibilitet , men det blev på grund af modsætningerne til og ønsket om ikke at pålægge yderligere begrænsninger på brugerne, såsom forbud .
Processen for at fjerne GCC fra det grundlæggende system vil blive opdelt i flere faser og strække sig over 9 måneder, hvilket vil give udviklerne af de platforme, der er knyttet til GCC (powerpc, mips, mips64 og sparc64), tid til at migrere til Clang eller begynde at bruge eksterne værktøjer. Den første fase starter den 31. august og vil føre til, at gcc 4.2.1 bliver udelukket fra byggeriet i systemet til kontinuerlig integration, samt at anvendelsen af flaget "-Werror" for de GCC-knyttede platforme stopper, og GCC-bygning som standard deaktiveres ved kørsel af "make universe."
Den 31. december 2019 vil GCC-bygningen være deaktiveret som standard, men kan stadig aktiveres ved angivelse af bestemte flag. Den 31. marts 2020 vil GCC blive fjernet fra SVN-repositoriet, og den 31. maj vil alle platforme, der ikke dækkes af systemet til kontinuerlig integration, der ikke understøtter LLVM eller ikke er blevet migreret til brug af eksterne bygværktøjer, blive fjernet fra SVN. Den 31. juli 2020 vil den endelige fjernelse fra SVN af alle resterende platforme, der kræver brug af eksterne værktøjer, men ikke understøttes i relasebyggekoderne, finde sted.
Kilde: opennet.ru
