Compiling
GNU ld 的替代品是什麼?
我很好奇是否可以在沒有 GNU 工具鏈(gcc+autotools)的情況下建構 Linux 核心。
我發現這是可能的:在應用llvm.linuxfoundation.org的更新檔後,可以使用 clang 建構 Linux 核心。使用了 GNU 連結器。
的替代方案
ld
也是gold
GNU binutils 的一部分。流行的 musl+clang 工具鏈 ELLCC 也使用 GNU binutils。還有更多選擇:(
lld
沒有穩定版本),mclinker
(沒有穩定版本)。是否存在 GNU binutils 的替代品?可能,在 Mac OS X 或 FreeBSD 上建構不涉及 GNU 工具。
截至 2018 年,
lld
似乎已經足夠成熟,可以在生產中使用,不是 100% 兼容bfd
,但在大多數情況下可以用作替代品。
UNIX 連結器可以在原始碼中免費獲得(在 CDDL 下)。原始碼隨 OpenSolaris 項目一起提供。
由於一些缺陷和錯誤,GNU 連結器無法替代 Solaris 上的 UNIX ld。另一方面,Linux 上的連結可能取決於gld 偏差(例如,不同的命令行選項和不兼容的映射文件實現)。
您可能想查看 OpenSolaris 原始碼,例如http://schillix.sourceforge.net 連結器原始碼位於
usr/src/cmd/sgs
sgs代表軟體生成系統AFAIR。