Aalisin ang GCC sa pangunahing lineup ng FreeBSD

Mga Nag-develop ng FreeBSD ipinakita planong alisin ang GCC 4.2.1 mula sa FreeBSD base system sources. Aalisin ang mga bahagi ng GCC bago ma-forked ang FreeBSD 13 branch, na isasama lamang ang Clang compiler. Ang GCC, kung ninanais, ay maaaring maihatid mula sa mga port kung saan ito inaalok GCC 9, 7 ΠΈ 8, pati na rin ang mga nailipat na sa kategorya ng hindi na ginagamit mga isyu GCC 4.8, 5, 6 ΠΈ 7.

Ang mga arkitektura na umaasa sa GCC at hindi maaaring lumipat sa Clang ay hihilingin na mag-migrate sa mga panlabas na tool na naka-install mula sa mga port. Bilang paghahanda para sa pag-alis ng GCC mula sa base system, ang trabaho ay pinlano upang mapabuti ang pagsasama ng base system build system sa mga panlabas na tool. Halimbawa, para sa arkitektura ng amd64, ang tuluy-tuloy na sistema ng pagsasama ay nagdagdag na ng kakayahang bumuo gamit ang gcc 6.4 mula sa mga port, na maaaring magamit bilang batayan para sa pagsasalin ng iba pang mga arkitektura.

Alalahanin natin na simula sa FreeBSD 10, ang base system para sa i386, AMD64 at ARM na mga arkitektura ay inilipat sa default na paghahatid ng Clang compiler at ang libc++ library na binuo ng proyekto ng LLVM. Ang GCC at libstdc++ para sa mga arkitektura na ito ay hindi na binuo bilang bahagi ng base system, ngunit patuloy na ibinibigay bilang default para sa mga arkitektura ng powerpc, mips, mips64 at sparc64, at maaari ding i-install kapag muling itinayo gamit ang mga flag na WITH_GCC at WITH_GNUCXX na tinukoy. Ang lumang bersyon ng GCC 4.2.1 ay naipadala dahil sa mga paghihigpit sa paglilisensya.

Hindi makapag-migrate ang FreeBSD sa isang mas bagong bersyon ng GCC, dahil mula noong inilabas ang 4.2.2 GCC ay isinalin Ang lisensya ng GPLv3 at ang pagsasama ng GCC 4.2.2 ay nahadlangan ng hindi pagkakatugma ng mga bahagi ng runtime ng GCC sa lisensya ng BSD. Sa ibang pagkakataon, sa bersyong GCC 4.4 ang hindi pagkakatugma na ito ay inalis, ngunit ang pagdaragdag ng mga bahaging lisensyado ng GPLv3 sa base system ng FreeBSD ay natagpuang imposible dahil sa mga kontradiksyon sa mga layunin ng proyekto ng FreeBSD at pag-aatubili na magpataw ng mga karagdagang paghihigpit sa mga user, gaya ng pagbabawal tivoization.

Ang proseso ng pag-alis ng GCC sa base system ay mahahati sa ilang yugto at tatagal ng 9 na buwan, na magbibigay ng oras sa mga developer ng GCC-bound architecture (powerpc, mips, mips64 at sparc64) na lumipat sa Clang o lumipat sa paggamit panlabas na mga kasangkapan. Ang unang yugto ay magsisimula sa Agosto 31 at hahantong sa pagbubukod ng gcc 4.2.1 mula sa tuluy-tuloy na integration system build, pati na rin ang pagwawakas ng "-Werror" na flag para sa GCC-bound na mga platform at ang hindi pagpapagana ng GCC build sa pamamagitan ng default kapag tumatakbo ang "make universe".

Sa Disyembre 31, 2019, idi-disable ang GCC build bilang default, ngunit maaari pa ring ibalik sa pamamagitan ng pagtukoy ng ilang partikular na flag. Sa Marso 31, 2020, aalisin ang GCC sa repository ng SVN, at sa Mayo 31, ang lahat ng platform na hindi sakop ng tuluy-tuloy na pagsasama, hindi sumusuporta sa LLVM, o hindi pa na-convert para gumamit ng mga external na tool sa pagbuo ay aalisin sa SVN . Sa Hulyo 31, 2020, isasagawa ang panghuling pag-aalis sa SVN ng lahat ng natitirang platform na nangangailangan ng paggamit ng mga external na tool, ngunit hindi sinusuportahan sa mga script ng pagbuo ng release.

Pinagmulan: opennet.ru

Magdagdag ng komento