GCC vil blive fjernet fra FreeBSD's primære lineup

FreeBSD-udviklere præsenteret planlægger at fjerne GCC 4.2.1 fra FreeBSD-basesystemkilderne. GCC-komponenter vil blive fjernet, før FreeBSD 13-grenen forgrenes, hvilket kun vil inkludere Clang-kompileren. GCC kan, hvis det ønskes, leveres fra de havne, hvor det tilbydes GCC 9, 7 и 8, samt allerede overført til kategorien forældede problemer GCC 4.8, 5, 6 и 7.

Arkitekturer, der er afhængige af GCC og ikke kan migrere til Clang, vil blive bedt om at migrere til eksterne værktøjer installeret fra porte. Som forberedelse til fjernelse af GCC fra basissystemet planlægges der arbejde med at forbedre integrationen af ​​basissystembyggesystemet med eksterne værktøjer. For eksempel for amd64-arkitekturen har det kontinuerlige integrationssystem allerede tilføjet muligheden for at bygge ved hjælp af gcc 6.4 fra porte, som kan bruges som grundlag for oversættelse af andre arkitekturer.

Lad os huske, at startende med FreeBSD 10 blev basissystemet for i386, AMD64 og ARM-arkitekturerne overført til standardleveringen af ​​Clang-kompileren og libc++-biblioteket udviklet af LLVM-projektet. GCC og libstdc++ for disse arkitekturer blev ikke længere bygget som en del af basissystemet, men blev ved med at blive leveret som standard til powerpc, mips, mips64 og sparc64 arkitekturerne og kunne også installeres ved genopbygning med de specificerede WITH_GCC og WITH_GNUCXX flag. Den forældede version af GCC 4.2.1 blev sendt på grund af licensbegrænsninger.

FreeBSD kunne ikke migrere til en nyere version af GCC, da GCC siden udgivelse 4.2.2 var oversat GPLv3-licensen og GCC 4.2.2-integrationen blev hæmmet af inkompatibiliteten af ​​GCC-runtime-komponenter med BSD-licensen. Senere, i version GCC 4.4 denne inkompatibilitet blev elimineret, men tilføjelsen af ​​GPLv3-licenserede komponenter til FreeBSD-basesystemet var fundet umuligt på grund af modsætninger med målene for FreeBSD-projektet og modvilje mod at pålægge brugere yderligere begrænsninger, såsom forbud tivoisering.

Processen med at slippe af med GCC i basissystemet vil blive opdelt i flere trin og vil vare 9 måneder, hvilket vil give udviklere af GCC-bundne arkitekturer (powerpc, mips, mips64 og sparc64) tid til at migrere til Clang eller skifte til at bruge eksterne værktøjer. Den første fase starter den 31. august og vil føre til udelukkelse af gcc 4.2.1 fra den kontinuerlige integrationssystem build, samt opsigelse af "-Werror" flaget for GCC-bundne platforme og deaktivering af GCC builds af standard, når du kører "make universe".

Den 31. december 2019 vil GCC-buildet være deaktiveret som standard, men det kan stadig vendes tilbage ved at angive visse flag. Den 31. marts 2020 vil GCC blive fjernet fra SVN-lageret, og den 31. maj vil alle platforme, der ikke er omfattet af kontinuerlig integration, ikke understøtter LLVM eller ikke er blevet konverteret til at bruge eksterne byggeværktøjer, blive fjernet fra SVN . Den 31. juli 2020 udføres den endelige fjernelse fra SVN af alle resterende platforme, der kræver brug af eksterne værktøjer, men som ikke understøttes i udgivelsesgenereringsscripts.

Kilde: opennet.ru

Tilføj en kommentar