Выпуск компоновщика Mold 2.0, развиваемого разработчиком LLVM lld

Опубликован выпуск компоновщика Mold 2.0, который может применяться в качестве более быстрой прозрачной замены GNU linker на Linux-системах. Проект развивает автор компоновщика LLVM lld. Ключевой особенностью Mold является очень высокая скорость связывания объектных файлов, заметно опережающая компоновщики GNU gold и LLVM lld (компоновка в Mold выполняется со скоростью, всего в два раза медленнее простого копирования файлов утилитой cp). Код написан на языке С++ (C++20) и распространяется под лицензией MIT.

Ключевым изменением в новой версии стал переход с использования копилефт лицензии AGPLv3 на разрешительную лицензию MIT, не требующую открытия кода производных работ. По мнению разработчиков переход на лицензию MIT позволит повысить привлекательность проекта в корпоративной среде и поможет привлечь к разработке новых участников. Изначально проект рассчитывать использовать для монетизации продукта поставку под лицензией AGPL с возможностью покупки коммерческой лицензии для компаний, не готовых выполнять требования AGPL. Но разработчики отказались от подобной модели, так как такой подход не оправдал себя.

Другие изменения:

  • При использовании опции “–relocatable” снято ограничение на генерацию объектных файлов, содержащих более 65520 секций.
  • Опция “-undefined” теперь обрабатывается как синоним “–undefined”, в не “-u ndefined”. Аналогично опция “-nopie” обрабатывается как синоним “–no-pie”.
  • Добавлена поддержка типов перемещений адресов R_PPC64_REL32, R_RISCV_SET_ULEB128 и R_RISCV_SUB_ULEB128.
Release. Ссылка here.