FreeBSD 10 будет использовать лицензированный BSD компилятор Clang вместо GCC для 32- и 64-битных систем Intel x86. Единственное, что препятствует оптовому переходу на всех процессорных платформах, на которых выпускаются FreeBSD, - это время разработчиков и интерес.
Что касается FreeBSD 9 - который должен был быть выпущен, когда этот вопрос был впервые задан, - речь шла о том, чтобы сделать Clang компилятором по умолчанию, но с ним было достаточно проблем, поэтому они решили отправить Clang вместе с GCC и оставить GCC по умолчанию. для этого выпуска.
Что касается того, почему FreeBSD не пыталась перейти на компилятор не-GPL много лет назад или, возможно, даже не создавала их самостоятельно, причина проста: это сложно.
Любой студент CS старшекурсников может написать компилятор - это может быть даже обязательным требованием курса - но написать хороший компилятор сложно. Написание хорошего компилятора еще сложнее, когда это необходимо для такого языка, как C или C ++. Задача становится еще сложнее, когда вы принимаете разумное решение о том, что новый компилятор должен по крайней мере приблизиться к производительности и возможностям GCC, за которым стоит разработка в течение нескольких десятилетий.
Из-за этого GCC 4.2 по-прежнему является компилятором по умолчанию во FreeBSD 9.
Кстати, GCC 3.4, 4.4, 4.6, 4.7 и 4.8 находятся в дереве портов FreeBSD 9, и некоторая версия GCC, вероятно, останется в портах еще много лет. Существует множество программных пакетов, многие из которых находятся в портах FreeBSD, которые собираются только с GCC.
Скорее всего, по необходимости. До недавнего времени лицензированных BSD компиляторов C, вероятно, было немного или они даже близко не подходили к паритету функций
gcc
.Из целей проекта FreeBSD :
источник