توسعه دهندگان FreeBSD
از معماری هایی که به GCC متکی هستند و نمی توانند به Clang مهاجرت کنند، خواسته می شود که به ابزارهای خارجی نصب شده از پورت ها مهاجرت کنند. در آماده سازی برای حذف GCC از سیستم پایه، کار برای بهبود ادغام سیستم ساخت سیستم پایه با ابزارهای خارجی برنامه ریزی شده است. به عنوان مثال، برای معماری amd64، سیستم یکپارچه سازی پیوسته قبلاً قابلیت ساخت با استفاده از gcc 6.4 از پورت ها را اضافه کرده است که می تواند به عنوان پایه ای برای ترجمه معماری های دیگر استفاده شود.
به یاد بیاوریم که با شروع FreeBSD 10، سیستم پایه برای معماریهای i386، AMD64 و ARM به تحویل پیشفرض کامپایلر Clang و کتابخانه libc++ توسعهیافته توسط پروژه LLVM منتقل شد. GCC و libstdc++ برای این معماریها دیگر بهعنوان بخشی از سیستم پایه ساخته نمیشدند، اما همچنان بهطور پیشفرض برای معماریهای powerpc، mips، mips64 و sparc64 عرضه میشدند و همچنین میتوانستند هنگام بازسازی با پرچمهای WITH_GCC و WITH_GNUCXX نصب شوند. نسخه قدیمی GCC 4.2.1 به دلیل محدودیت های مجوز ارسال شد.
FreeBSD نمی تواند به نسخه جدیدتر GCC مهاجرت کند، زیرا از زمان انتشار 4.2.2 GCC
روند خلاص شدن از شر GCC در سیستم پایه به چند مرحله تقسیم می شود و 9 ماه طول می کشد که به توسعه دهندگان معماری های وابسته به GCC (powerpc، mips، mips64 و sparc64) زمان می دهد تا به Clang مهاجرت کنند یا به استفاده از آن تغییر دهند. ابزارهای خارجی مرحله اول از 31 آگوست شروع می شود و منجر به حذف gcc 4.2.1 از ساخت سیستم یکپارچه سازی مداوم، و همچنین خاتمه پرچم "-Werror" برای پلتفرم های متصل به GCC و غیرفعال کردن ساخت های GCC توسط پیشفرض هنگام اجرای «ساخت جهان»
در 31 دسامبر 2019، ساخت GCC به طور پیشفرض غیرفعال میشود، اما همچنان میتوان با مشخص کردن پرچمهای خاص آن را برگرداند. در 31 مارس 2020، GCC از مخزن SVN حذف خواهد شد و در 31 مه، تمام پلتفرم هایی که تحت پوشش یکپارچه سازی مداوم نیستند، از LLVM پشتیبانی نمی کنند یا برای استفاده از ابزارهای ساخت خارجی تبدیل نشده اند، از SVN حذف خواهند شد. . در 31 جولای 2020، حذف نهایی از SVN همه پلتفرمهای باقیمانده که نیاز به استفاده از ابزارهای خارجی دارند، اما در اسکریپتهای تولید نسخه پشتیبانی نمیشوند، انجام خواهد شد.
منبع: opennet.ru