Золото (линкер) - Gold (linker)

золото
Разработчики)Ян Лэнс Тейлор
Написано вC ++
Операционная системаGNU
Платформаx86, x86-64, ARM, PowerPC, TileGX
ТипКомпоновщик
ЛицензияСтандартная общественная лицензия GNU версии 3
Интернет сайтисходное ПО.org/ binutils/

В программной инженерии золото это компоновщик за ELF файлы. Он стал официальным Пакет GNU и был добавлен в binutils в марте 2008 г.[1] [2] и впервые выпущен в binutils версии 2.19. gold был разработан Яном Лэнсом Тейлором и небольшой командой в Google.[3] Мотивом написания золота было создание компоновщика, который будет быстрее, чем Компоновщик GNU,[3] особенно для больших Приложения закодировано в C ++.

В отличие от компоновщика GNU, gold не использует Библиотека BFD обрабатывать объектные файлы. Хотя это ограничивает форматы объектных файлов, которые он может обрабатывать только ELF, также утверждается, что это приводит к более чистой и быстрой реализации без дополнительного уровня абстракции. Автор назвал полное удаление BFD причиной для создания нового компоновщика с нуля, а не постепенного улучшения компоновщика GNU.[4] Это переписывание также исправляет некоторые ошибки в старом ld, которые ломают файлы ELF различными незначительными способами.[5]

Чтобы указать золото в makefile, устанавливается LD или LD переменная окружающей среды к ld.gold. Указать золото через опция компилятора, можно использовать gcc вариант -fuse-ld = золото.

Смотрите также

Рекомендации

  1. ^ "gold README: Rewrite, с некоторыми замечаниями о неподдерживаемых функциях". 2008-03-25. Получено 2020-04-28. Это программа GNU, и поэтому она соответствует стандартам форматирования GNU [...]
  2. ^ Ян Лэнс Тейлор (22 марта 2008 г.). "В GNU binutils добавлен новый код компоновщика ELF". список рассылки binutils. Получено 2020-04-28.
  3. ^ а б Ян Лэнс Тейлор (2008-04-04). "gold: Google выпускает новый и улучшенный компоновщик GCC". Блог Google с открытым исходным кодом. Получено 2020-04-28.
  4. ^ Йен Лэнс Тейлор (2008). Новый линкер ELF. Саммит разработчиков GCC. стр. 129–136. Получено 2020-04-28.
  5. ^ "ЭльфлинтГНУ". sourceware.org. Получено 2020-04-28. У eu-elflint есть флаг '--gnu-ld', описанный как «Двоичный файл был создан с помощью GNU ld и, следовательно, известен как некорректный». Обратите внимание, что под GNU ld подразумевается исходный GNU binutils ld, а не новый компоновщик GNU binutils gold.

внешняя ссылка