вторник, 19 апреля 2022 г.

Использование нового линковщика mold вместо стандартного при сборке LibreOffice

Один знаменитый в узких кругах программист взял и написал новый линковщик mold, который (по слухам) здорово ускоряет сборку нашего не маленького проекта LibreOffice.

Илмари пишет, что при использовании mold сборка LibreOffice у него стала занимать 30 минут вместо 50 минут со стадартным lld. Почти в ДВА раза! Учитывая, что у меня старое железо, и сборка вообще занимает два часа, применение mold явно имеет смысл.

Чтобы использовать mold при сборке LibreOffice (о том, как собирать свою сборку я писал ранее вот в этой статье), вам нужен установленный в вашей ОС mold и на шестом шаге "даём команду ./autogen.sh" нужно добавить к команде опцию --enable-ld=mold, либо добавить эту опцию в ваш файл autogen.input.

Вот результат тестов от самого автора mold :

Link speed comparison 

Добавлю после натурного эксперимента: 

mold в Ubuntu 20.04 собирается после прочтения инструкции по ссылке выше. Всё оказалось просто:

Команда sudo apt-get install -y build-essential git clang cmake libstdc++-10-dev libssl-dev libxxhash-dev zlib1g-dev pkg-config установит необходимые зависимости.

Далее команды:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.2.0
make -j$(nproc) CXX=clang++
sudo make install

скачают репозиторий mold к вам локально, соберут бинарник версии 1.2.0 и поместят его в системный каталог.

Так как штатный компилятор GCC в Ubuntu 20.04 имеет версию 9.4, а поддержка mold появится только в GCC 12, то собирать LibreOffice, используя mold можно только юзая Clang (это тоже компилятор). Для этого в файл autogen.input в каталоге с исходниками LibreOffice надо добавить следующие строки:

CC=clang
CXX=clang++
--enable-ld=mold

Именно так, две первые строки без двух дефисов, а последняя с ними.

Далее даем команды

make clean

make

И процесс побежит.

Комментариев нет:

Отправить комментарий

Внимание! Сообщения проходят премодерацию!