Компания Qualcomm открыла компоновщик ELD, пригодный для замены GNU Linker

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 4079
Зарегистрирован: 20.08.2022

#

Компания Qualcomm открыла компоновщик ELD, пригодный для замены GNU Linker
Дата публикации:Tue, 15 Apr 2025 11:37:12 +0300




Компания Qualcomm перевела в разряд открытых проектов компоновщик ELD, используемый в наборе компиляторов Qualcomm (на базе LLVM) и оптимизированный для связывания объектных файлов в проектах для встраиваемых систем. В ELD учтена такая специфика, как активное использование linker-скриптов и потребность в модификации и расширении процесса компоновки. Код написан на языке C++ и распространяется под лицензией BSD.




Проект может использоваться в качестве прозрачной замены GNU linker, потребляющей меньше памяти, обеспечивающей более высокую скорость связывания и позволяющей менять поведение процесса компоновки. Архитектура ELD рассчитана на возможность лёгкого добавления поддержки новых платформ через подключение бэкендов. В текущем виде предложены бэкенды для целевых платформ Qualcomm Hexagon NPU, AArch32, AArch64 и RISC-V (c расширениями Xqiu). В качестве основы при разработке использован MCLinker.






Основные возможности:
  • Статическое, динамическое и частичное (опция "--relocatable") связывание.
    Работа с форматом исполняемых и компонуемых файлов ELF (Executable and Linking Format).
    Поддержка оптимизации на этапе связывания (LTO - Link-Time Optimization) и специфичных для компоновки оптимизаций, таких как слияние строк.

    Совместимость с GNU ld на уровне опций командной строки.
    Соответствие методам разрешения символов, работы с входящими файлами и генерации исполняемых файлов, используемых в утилитах от проекта GNU.

    Поддержка linker-скриптов для управления связыванием, синтаксис которых совпадает со скриптами для GNU ld.

    Возможность генерации детализированных и удобочитаемых карт связывания (map-файлов), которые можно использовать как для ручной диагностики проблем и отладки, так и как источник данных для автоматизированной генерации собственных отчётов.


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

    Функциональность воспроизведения (reproduce), позволяющая создавать tar-архивы для воспроизведения компоновки без каких-либо зависимостей. Подобные архивы удобно использовать в процессе разбора проблем, возникающих на этапе связывания - пользователь может отправить разработчику архив, позволяющий воспроизвести проявление проблемы.

    Расширенные опции для диагностики и отладки запутанных проблем, например, связанных со сборкой мусора при обработке отладочных символов.



В компании Qualcomm компоновщик ELD используется в таких областях, как сборка прошивок и драйверов, подготовка компонентов для анклавов TrustZone, сборка продуктов для AI, 5G-модемов и беспроводных сетевых устройств, создание образов Zephyr RTOS для архитектур AArch32, AArch64 и RISC-V, разработка прошивок для микроконтроллеров на базе архитектуры RISC-V.



Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63073

Жизнь за Нер'зула!

Ответить