gold (連結器)
在軟體工程中,gold是ELF檔案的链接器。其在2008年3月成為官方GNU軟體包並被加入至GNU Binutils中[1][2],第一次釋出是在binutils 2.19中。gold是由Ian Lance Taylor與Google的一個小團隊開發的[3]。編寫gold的動機是要製作一個比GNU連結器更快的連結器[3],特別是對於使用C++編寫的大型应用程序。
開發者 | Ian Lance Taylor |
---|---|
编程语言 | C++ |
操作系统 | GNU |
平台 | x86, x86-64, ARM, PowerPC, TileGX |
类型 | 链接器 |
许可协议 | GNU通用公共许可证第三版 |
网站 | sourceware |
與GNU連結器不同,gold並不會使用BFD函式庫來處理目的檔。雖然這限制了其只能處理ELF的目的檔格式,但其也聲稱可以在沒有額外抽象層的情況下有更清晰且更快的實作。作者提到了完全移除BFD作為從頭開發新連結器而非逐步改進GNU連結器的原因[4]。這個重寫也修復了舊的ld的一些Bug,這些Bug以各種小問題破壞ELF檔案[5]。
要在Makefile中指定gold,可以將LD或LD环境变量設定為ld.gold
。要透過編譯器選項指定gold
,可以使用GCC選項-fuse-ld=gold
。
Fedora已將gold從binutils移轉到自己的軟體包中,因為擔心在Google的興趣轉移到LLVM後會有软件腐败的問題[6]。
參見
- 執行檔格式比較,也適用於PE/COFF (Windows)以及Mach-O (Mac OS X)格式。
參考資料
- . 2008-03-25 [2020-04-28]. (原始内容存档于2022-04-08).
It is a GNU program, and therefore follows the GNU formatting standards[...]
- Ian Lance Taylor. . binutils mailing list. 2008-03-22 [2020-04-28]. (原始内容存档于2022-04-08).
- Ian Lance Taylor. . Google Open Source Blog. 2008-04-04 [2020-04-28]. (原始内容存档于2022-03-21).
- Ian Lance Taylor. . GCC Developers' Summit: 129–136. 2008 [2020-04-28]. (原始内容存档于2022-04-08).
- . sourceware.org. [2020-04-28]. (原始内容存档于2022-03-24).
eu-elflint has a flag '--gnu-ld' described as "Binary has been created with GNU ld and is therefore known to be broken in certain ways". Note that by GNU ld the original GNU binutils ld is meant, not the newer GNU binutils gold linker.
- Michael Larabel. . Phoronix. 2019-02-24 [2021-02-03]. (原始内容存档于2022-04-08).
外部連結
- Ian Lance Taylor. . 2007-08-22 [2020-04-28]. (原始内容存档于2022-03-09).
- Edge, Jake. . LWN.net. 2008-03-26 [2020-04-28]. (原始内容存档于2022-03-21).
- . LLVM. [2021-08-14]. (原始内容存档于2022-04-22).
- Coutant, Cary. (PDF). Linux Foundation Collaboration Summit. 2012-04-05 [2021-08-14]. (原始内容 (PDF)存档于2022-04-08).
- . 2012 Linux Foundation Collaboration Summit. 2012-04-11 [2021-08-14]. (原始内容存档于2017-02-02).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.