GCC будзе выдалены з асноўнага складу FreeBSD

Распрацоўнікі FreeBSD прадставілі план выдалення GCC 4.2.1 з зыходных тэкстаў базавай сістэмы FreeBSD. Кампаненты GCC будуць выдалены да адгалінавання галінкі FreeBSD 13, у склад якой будзе ўваходзіць толькі кампілятар Clang. GCC пры жаданні можна будзе паставіць з партоў, у якіх прапануецца GCC 9, 7 и 8, а таксама ўжо пераведзеныя ў разрад састарэлых выпускі GCC 4.8, 5, 6 и 7.

Архітэктурам, якія завязаныя на GCC і не могуць перайсці на Clang, будзе прапанавана перайсці на вонкавы інструментар, які ўсталёўваецца з партоў. У рамках падрыхтоўкі да выдалення GCC з базавай сістэмы плануецца правесці працу па паляпшэнні інтэграцыі сістэмы зборкі базавай сістэмы са знешнімі інструментарыямі. Напрыклад, для архітэктуры amd64 у сістэму бесперапыннай інтэграцыі ўжо дададзена магчымасць зборкі з выкарыстаннем gcc 6.4 з партоў, якая можа быць скарыстана ў якасці асновы для перакладу іншых архітэктур.

Нагадаем, што пачынаючы з FreeBSD 10 базавая сістэма для архітэктур i386, AMD64 і ARM была пераведзена на пастаўку па змаўчанні кампілятара Clang і якая развіваецца праектам LLVM бібліятэкі libc++. GCC і libstdc++ для паказаных архітэктур перасталі збірацца як частка базавай сістэмы, але працягнулі пастаўляцца па змаўчанні для архітэктур powerpc, mips, mips64 і sparc64, а таксама маглі быць усталяваныя пры перазборцы з указаннем сцягоў WITH_GCC і WITH_GNUCXX. Пастаўка састарэлай версіі GCC 4.2.1 была абумоўлена ліцэнзійнымі абмежаваннямі.

FreeBSD не мог перайсці на навейшую версію GCC, бо пачынальна з выпуску 4.2.2 GCC быў перакладзены на ліцэнзію GPLv3 і інтэграцыі GCC 4.2.2 замінала несумяшчальнасць runtime-кампанентаў GCC з ліцэнзіяй BSD. Пазней, у версіі GCC 4.4 дадзеная несумяшчальнасць была ўхіленая, але даданне ў базавую сістэму FreeBSD кампанентаў пад ліцэнзіяй GPLv3 было прызнана немагчымым з-за супярэчнасцяў з мэтамі праекту FreeBSD і нежаданнем накладаць дадатковыя абмежаванні на карыстальнікаў, такія як забарона ціваізацыі.

Працэс збавення ад GCC у базавай сістэме будзе падзелены на некалькі этапаў і працягнецца 9 месяцаў, што дасць распрацоўнікам прывязаных да GCC архітэктур (powerpc, mips, mips64 і sparc64) час на тое, каб выканаць міграцыю на Clang або перайсці на выкарыстанне вонкавага інструментара. Першы этап стартуе 31 жніўня і прывядзе да выключэння gcc 4.2.1 са зборкі ў сістэме бесперапыннай інтэграцыі, а таксама да спынення прымянення сцяга "-Werror" для прывязаных да GCC платформаў і адключэння па змаўчанні зборкі GCC пры выкананні "make universe".

31 снежня 2019 года зборка GCC будзе адключаная па змаўчанні, але пакуль зможа быць вернутая пры ўказанні пэўных сцягоў. 31 сакавіка 2020 года GCC будзе выдалены з SVN-рэпазітара, а 31 траўня з SVN будуць выдаленыя ўсе платформы, не ахопленыя сістэмай бесперапыннай інтэграцыі, якія не падтрымліваюць LLVM або не пераведзеныя на выкарыстанне знешняга зборачнага інструментара. 31 ліпеня 2020 гады будзе выканана фінальнае выдаленне з SVN усіх якія застаюцца платформаў, патрабавальных выкарыстанне вонкавага інструментара, але не падтрымоўваных у скрыптах фармавання рэлізаў.

Крыніца: opennet.ru

Дадаць каментар