GCC va fi eliminat din compunerea principală a FreeBSD

Dezvoltatorii FreeBSD au prezentat planul de eliminare GCC 4.2.1 din sursele sistemului de bază FreeBSD. Componentele GCC vor fi eliminate până la ramificarea versiunii FreeBSD 13, care va include numai compilatorul Clang. GCC poate fi instalat din porturi, dacă se dorește. GCC 9, 7 și 8, precum și deja clasificate ca fiind învechite versiuni GCC 4.8, 5, 6 și 7.

Arhitecturile care depind de GCC și nu pot trece la Clang vor fi invitate să utilizeze un instrument extern, instalat din porturi. În cadrul pregătirilor pentru eliminarea GCC din sistemul de bază, se planifică îmbunătățirea integrării sistemului de compilare al sistemului de bază cu instrumentele externe. De exemplu, pentru arhitectura amd64, în sistemul de integrare continuă a fost deja adăugată posibilitatea de a compila cu gcc 6.4 din porturi, care poate fi utilizată ca bază pentru portarea altor arhitecturi.

Reamintim că, începând cu FreeBSD 10, sistemul de bază pentru arhitecturile i386, AMD64 și ARM a trecut la livrarea implicită a compilatorului Clang și a bibliotecii libc++ dezvoltate de proiectul LLVM. GCC și libstdc++ pentru arhitecturile menționate nu mai sunt compilate ca parte a sistemului de bază, dar continuă să fie livrate implicit pentru arhitecturile powerpc, mips, mips64 și sparc64, precum și pot fi instalate prin recompilare cu specificarea flagurilor WITH_GCC și WITH_GNUCXX. Livrarea versiunii învechite GCC 4.2.1 a fost determinată de restricțiile de licențiere.

FreeBSD nu a putut trece la o versiune mai nouă de GCC, deoarece începând cu versiunea 4.2.2, GCC a fost convertit la licența GPLv3 și integrarea GCC 4.2.2 a fost împiedicată de incompatibilitatea componentelor runtime ale GCC cu licența BSD. Ulterior, în versiunea GCC 4.4, această incompatibilitate a fost remediată, dar adăugarea componentelor în sistemul de bază FreeBSD sub licența GPLv3 a fost considerată imposibilă datorită contradicțiilor cu obiectivele proiectului FreeBSD și reluctanței de a impune restricții suplimentare utilizatorilor, cum ar fi interdicția tivizării.

Procesul de eliminare a GCC din sistemul de bază va fi împărțit în mai multe etape și va dura 9 luni, ceea ce va oferi dezvoltatorilor legate de arhitecturile GCC (powerpc, mips, mips64 și sparc64) timp să migreze la Clang sau să treacă la utilizarea unor unelte externe. Prima etapă va începe pe 31 august și va conduce la eliminarea gcc 4.2.1 din compilarea în sistemul de integrare continuă, precum și la încetarea utilizării flag-ului „-Werror” pentru platformele legate de GCC și la dezactivarea implicită a compilării GCC la execuția „make universe”.

Pe 31 decembrie 2019, compilarea GCC va fi dezactivată implicit, dar va putea fi reactivată prin specificarea unor flag-uri anume. Pe 31 martie 2020, GCC va fi eliminat din SVN-repositoriu, iar pe 31 mai toate platformele care nu sunt acoperite de sistemul de integrare continuă, care nu suportă LLVM sau care nu au fost migrate la utilizarea uneltelor externe de compilare vor fi eliminate din SVN. Pe 31 iulie 2020, va avea loc eliminarea finală din SVN a tuturor platformelor rămase, care necesită utilizarea uneltelor externe de compilare, dar nu sunt întreținute în scripturile de formare a versiunilor.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster