Несоответствие сценариев компоновщика LLD и LD

#ld #lld

#лд #lld

Вопрос:

Я переношу проект из LD в LLD. Возникла ошибка, которая появляется из-за отсутствия поддержки глобальных выражений в LLD. Поддерживаются ли переменные таким образом?

Упрощенный пример того, что работает в LD:

пример.ld

 _Flash_Origin = 0x01000000;
_App_Length = 16K;
_App_Origin = _Flash_Origin;
MEMORY
{
    APP(rx) : ORIGIN = _App_Origin, LENGTH = _App_Length
}
  

Ошибка заключается symbol not found: _App_Length в следующем. Я ищу причину, по которой это происходит только в LLD.

Приведенные аргументы заключаются в следующем:

 --gc-sections (list of object files...) -Bstatic -L(big path...)clang/10.0.1/lib/baremetal -T example.ld -T sections.ld -o output.elf
  

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

1. Разве вам не нужен файл —script=scriptfile ?

2.Нет, я так не думаю: -T scriptfile --script=scriptfile

3. Эй, ты нашел ответ? Поддерживает ли lld переменные в файле сценария?