LLVM: различия между версиями
Строка 11: | Строка 11: | ||
Все компоненты собраны с помощью самих себя с использованием технологии [http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html ThinLTO], позволяющей получить значительный выигрыш в оптимизации C++ кода и как следствие работает быстрее, чем предыдущие версии собранные gcc. | Все компоненты собраны с помощью самих себя с использованием технологии [http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html ThinLTO], позволяющей получить значительный выигрыш в оптимизации C++ кода и как следствие работает быстрее, чем предыдущие версии собранные gcc. | ||
=== Проекты в ALTLinux которые перешли на LLVM === | |||
* chromium (полностью, использует ThinLTO и LLD) | |||
* firefox (полностью, использует ThinLTO и LLD) | |||
* rust (частично, использует собственный boostrap код) | |||
* castxml (частично, использует clang и статическую линковку clang-libs и LLVM) | |||
* Mesalib (частично, статически линкует libLLVM, есть [http://git.altlinux.org/people/lakostis/packages/?p=mesa.git;a=shortlog;h=refs/heads/mesa-megadrivers вариант] с динамической линковкой) | |||
=== Известные проблемы === | === Известные проблемы === |
Версия от 00:12, 2 мая 2018
Особенности сборки пакетов проекта LLVM в ALTLinux Sisyphus
Введение
Несмотря на то, что проект LLVM является довольно зрелым и вполне сформировавшимся, в ALTLinux он появился и стал активно использоваться совсем недавно. Поэтому существует целый ряд проблем, которые будут решены в будущем или будут считаться отличительными особенностями.
Особенности сборки
В настоящий момент в Сизифе существуют след. компоненты:
- llvm libs - пакет с библиотеками, реализующими генерацию оптимизированного кода для различных процессоров и архитектур.
- clang - "LLVM native" C/C++/Objective-C компилятор, собирает код в 3 раза быстрее, чем gcc, также имеет развитые средства для диагностики и анализа кода.
- lld - линковщик кода, который может заменить стандартный ld/gold из binutils, при этом поддерживает все стандартные команды и возможности, работает быстрее и имеет ряд интересных особенностей.
Все компоненты собраны с помощью самих себя с использованием технологии ThinLTO, позволяющей получить значительный выигрыш в оптимизации C++ кода и как следствие работает быстрее, чем предыдущие версии собранные gcc.
Проекты в ALTLinux которые перешли на LLVM
- chromium (полностью, использует ThinLTO и LLD)
- firefox (полностью, использует ThinLTO и LLD)
- rust (частично, использует собственный boostrap код)
- castxml (частично, использует clang и статическую линковку clang-libs и LLVM)
- Mesalib (частично, статически линкует libLLVM, есть вариант с динамической линковкой)
Известные проблемы
- Хаотическая поддержка пакета.
- Нет стратегии развития экосистемы LLVM в ALTLinux.
- Опции сборки несовместимы с binutils altbug:34801 и gcc altbug:34685