Может быть, есть проблемы с совместимостью?
У меня сложилось впечатление, что для систем на базе Intel компилятор Intel мог бы работать лучше, чем GCC. Возможно, уже есть дистрибутив, который пытался это сделать?
Я думаю, что это может быть довольно просто, используя Gentoo.
Ответы:
Вы не сможете скомпилировать все с помощью ICC. Многие программы используют расширения GCC для языка Си. Однако Intel приложила немало усилий для поддержки большинства из этих расширений; например, последние версии icc могут компилировать ядро Linux.
Gentoo действительно лучший выбор, если вы любите перекомпилировать свое программное обеспечение необычным способом. На странице icc в вики Gentoo описаны основные препятствия.
Сначала сделайте базовую установку Gentoo, и
emerge icc
. Не удаляйте icc позже, если в вашей системе есть двоичный файл, скомпилированный с icc. Обратите внимание, что ICC установлен в/opt
; если этого нет в корневом разделе, вам необходимо скопировать библиотеки icc в корневой раздел, если какая-либо из программ, используемых во время загрузки, скомпилирована с помощью icc.Установить
/etc/portage/bashrc
и объявить ваши любимые параметры компиляции; см. вики Gentoo для более подробного скрипта, который поддерживает сборку разных пакетов с разными компиляторами (это необходимо, потому что icc ломает некоторые пакеты).источник
Это был бы интересный опыт. Однако перекомпиляция всего дистрибутива Linux с использованием альтернативного компилятора не будет простой. Многие необходимые пакеты зависят от GCC и других утилит GNU toolchain.
Было бы целесообразно использовать альтернативный компилятор для тех пакетов, которые не требуют GCC для создания гибрида. Возможно, можно заменить GCC-зависимые пакеты другими, которые будут собраны вашим компилятором, но в большинстве случаев альтернатив не так много. Там, где есть, вы должны будете определить, будут ли эти альтернативы функциональными для вашего предполагаемого использования.
Но реальный вопрос: стоит ли это того? Если вы пытаетесь построить встраиваемую систему, альтернативный компилятор может создать меньшие двоичные файлы. Если вы строите вычислительный кластер, вы можете ускорить выполнение кода. Если вы создаете рабочий стол, вы получите отличный опыт обучения.
Я думаю, что в конце концов (если вы создаете настольный компьютер) вы поймете, что в действительности решают многие пользователи исходного дистрибутива: количество времени, потраченное на оптимизацию, сборку и перестройку, значительно превышает время, сэкономленное благодаря более быстрому выполнению кода. Это не значит, что этого не следует делать - это может быть довольно весело. Если вы сделаете это, этот сайт будет отличным местом для поиска ответов и документирования ваших усилий.
источник