Почему сценарии компоновщика gcc STM32 автоматически отбрасывают все входные разделы из этих стандартных библиотек: libc.a, libm.a, libgcc.a? - PullRequest
2 голосов
/ 11 апреля 2019

Внизу любого автоматически сгенерированного сценария компоновщика, сгенерированного STM32CubeMx:

/* Remove information from the standard libraries */
/DISCARD/ :
{
  libc.a ( * )
  libm.a ( * )
  libgcc.a ( * )
}

Из руководства GNU Binutils ld (скрипт компоновщика), 3.6.7 Секция вывода, отбрасывающая :

Специальное имя секции вывода '/ DISCARD /' может использоваться для сброса секций ввода.Любые входные разделы, которые назначены выходному разделу с именем '/ DISCARD /', не включаются в выходной файл.

Что содержат эти 3 входных объектных файла и почему мы отбрасываем все (всевходные разделы) из них?

Другие темы сценария компоновщика STM32, представляющие интерес:

  1. Доступ к "значению" переменной сценария компоновщика неопределенное поведение в C?
  2. Как получить значение переменной, определенной в сценарии компоновщика ld, из C
...