GNU ld 的替代品有哪些?

GNU ld 的替代品有哪些?

我很好奇是否可以在没有 GNU 工具链(gcc+autotools)的情况下构建 Linux 内核。

我发现这是可能的:应用补丁后llvm.linuxfoundation.org,可以用 clang 构建 Linux 内核。使用了 GNU 链接器。

其替代方案ld也是goldGNU binutils 的一部分。流行的 musl+clang 工具链 ELLCC 也使用 GNU binutils。

还有更多的选择:(lld没有稳定版本),mclinker(没有稳定版本)。

是否存在 GNU binutils 的替代品?也许,在 Mac OS X 或 FreeBSD 上构建并不涉及 GNU 工具。

答案1

截至 2018 年,lld似乎已经足够成熟,可以在生产中使用,并非 100% 兼容bfd,但在大多数情况下可以用作直接替代品。

更新:最近,出现了一个新的链接器,并且正在积极开发中:mold

答案2

UNIX 链接器可以在源代码中免费获得(在 CDDL 下)。源代码随 OpenSolaris 项目提供。

由于一些缺陷和错误,GNU 链接器无法替代 Solaris 上的 UNIX ld。另一方面,Linux 上的链接可能取决于 gld 偏差(例如,不同的命令行选项和不兼容的映射文件实现)。

您可能想检查 OpenSolaris 源代码,例如:http://schillix.sourceforge.net 链接器源位于usr/src/cmd/sgs 新加坡标准协会代表软件生成系统公平。

相关内容