LINUX.ORG.RU

История изменений

Исправление ahdenchik, (текущая версия) :

Например, может пригодиться опция –trace-symbol=….

Этот способ оказался самым действенным - сразу всё прояснилось

Проблема типовая, оказывается, и часто случается как раз при статической компиляции с .init_array

Суть: как уже тут выше отмечали, линковка .o файла из .a происходит не просто так, а только когда что-то из этого .o было заюзано или же принудительно указан линкеру символ, объектный файл или ключ --whole-archive.

Поэтому, если у нас такой вот конструктор или, например, функция, которая внутри себя регистрирует где-то в наружной системе другой символ, то возникает эта проблема.

В моём случае достаточно оказалось заюзать символы из объектника и проблема вылечилась

Исходная версия ahdenchik, :

Этот способ оказался самым действенным, сразу всё прояснилось

Проблема типовая, оказывается, и часто случается как раз при статической компиляции с .init_array

Суть: как уже тут выше отмечали, линковка .o файла из .a происходит не просто так, а только когда что-то из этого .o было заюзано или же принудительно указан линкеру символ, объектный файл или ключ --whole-archive.

Поэтому, если у нас такой вот конструктор или, например, функция, которая внутри себя регистрирует где-то в наружной системе другой символ, то возникает эта проблема.

В моём случае достаточно оказалось заюзать символы из объектника и проблема вылечилась