золото (линкер)
![]() | |
Разработчик(и) | Ян Лэнс Тейлор |
---|---|
Написано в | С++ |
Операционная система | ГНУ |
Платформа | x86, x86-64, ARM, PowerPC, TileGX |
Тип | Линкер |
Лицензия | Стандартная общественная лицензия GNU версии 3. |
Веб-сайт | исходное программное обеспечение |
В разработке программного обеспечения золото является линкером для ELF файлов . Он стал официальным пакетом GNU и был добавлен в binutils в марте 2008 года. [ 1 ] [ 2 ] и впервые выпущен в версии binutils 2.19. gold был разработан Яном Лэнсом Тейлором и небольшой командой Google . [ 3 ] Мотивом написания gold было создание компоновщика, который был бы быстрее, чем компоновщик GNU . [ 3 ] особенно для больших приложений, написанных на C++ .
В отличие от компоновщика GNU, gold не использует библиотеку BFD для обработки объектных файлов . Хотя это ограничивает форматы объектных файлов, которые он может обрабатывать, только ELF, также утверждается, что это приводит к более чистой и быстрой реализации без дополнительного уровня абстракции. Автор назвал полное удаление BFD причиной создания нового компоновщика с нуля, а не постепенного улучшения компоновщика GNU. [ 4 ] Эта перезапись также исправляет некоторые ошибки в старом ld, которые различными незначительными способами нарушают работу файлов ELF. [ 5 ]
Чтобы указать золото в make-файле LD или LD , необходимо установить переменную среды в значение ld.gold
. Чтобы указать gold
через параметр компилятора можно использовать gcc параметр -fuse-ld=gold
.
Fedora перенесла золото из binutils в свой собственный пакет из-за опасений он страдает битротом после того, как интерес Google переместился на LLVM . [ 6 ]
См. также
[ редактировать ]- Сравнение форматов исполняемых файлов , в том числе для форматов PE/COFF (Windows) и Mach-O (Mac OS X).
Ссылки
[ редактировать ]- ^ «gold README: переписать с некоторыми примечаниями о неподдерживаемых функциях» . 25 марта 2008 г. Проверено 28 апреля 2020 г.
Это программа GNU, поэтому она соответствует стандартам форматирования GNU[...]
- ^ Ян Лэнс Тейлор (22 марта 2008 г.). «Новый код компоновщика ELF добавлен в GNU binutils» . Список рассылки binutils . Проверено 28 апреля 2020 г.
- ^ Jump up to: а б Ян Лэнс Тейлор (4 апреля 2008 г.). «золото: Google выпускает новый и улучшенный компоновщик GCC» . Блог Google с открытым исходным кодом . Проверено 28 апреля 2020 г.
- ^ Ян Лэнс Тейлор (2008). Новый линкер ELF . Саммит разработчиков GCC . стр. 129–136 . Проверено 28 апреля 2020 г.
- ^ «ЭльфлинтГНУ» . исходное программное обеспечение.org . Проверено 28 апреля 2020 г.
eu-elflint имеет флаг --gnu-ld, описываемый как «Двоичный файл был создан с помощью GNU ld и, следовательно, известен тем, что он поврежден определенным образом». Обратите внимание, что под GNU ld подразумевается исходный GNU binutils ld, а не новый золотой компоновщик GNU binutils.
- ^ Майкл Ларабель (24 февраля 2019 г.). «Золотой компоновщик GNU находится в стадии стагнации, Fedora хочет выделить его в отдельный пакет» . Фороникс . Проверено 3 февраля 2021 г.
Внешние ссылки
[ редактировать ]- Ян Лэнс Тейлор (22 августа 2007 г.). «Линкеры часть 1» . Проверено 28 апреля 2020 г.
- Эдж, Джейк (26 марта 2008 г.). «Добыча золота в binutils» . LWN.net . Проверено 28 апреля 2020 г.
- «Золотой плагин LLVM» . ЛЛВМ .
- Кутан, Кэри (5 апреля 2012 г.). «Постепенная связь с золотом» (PDF) . Linux Foundation Саммит по сотрудничеству .
- «Постепенная связь с золотом» . Саммит по сотрудничеству Linux Foundation 2012 . 11 апреля 2012 г. Архивировано из оригинала 02 февраля 2017 г. Проверено 22 января 2017 г.