由 LLVM lld 开发的 Mold 3.0 链接器发布

Mold 3.0 链接器已经发布,可以作为 GNU 链接器的一种更快、更透明的替代品。 LinuxMold 项目由 LLVM lld 链接器的作者 Rui Ueyama 开发。Mold 的主要特点是其极高的链接速度,显著优于 GNU gold 和 LLVM lld 链接器(Mold 的链接速度仅为使用 cp 工具复制文件的一半)。代码使用 Rust 编写,并以 MIT 许可证发布。

缩短链接时间能够显著提升大型项目的可用性,因为它可以减少调试和测试更改时生成可执行文件所需的等待时间。Mold 的创建动机源于以下几点:每次代码更改后都必须等待链接完成,这令人沮丧;现有链接器在多核系统上的性能不佳;以及希望尝试一种截然不同的链接架构,而无需采用增量链接等过于复杂的模型。

Mold 通过使用更快的算法、主动地在可用的 CPU 核心上并行执行操作以及采用更高效的数据结构,实现了从大量编译器预编译的目标文件编译可执行文件的高性能。例如,Mold 实现了一种技术,可以在执行密集计算的同时复制文件,预先将目标文件加载到内存中,使用快速哈希表进行符号解析,在单独的线程中扫描重定位表,以及对不同文件中重复的合并段进行去重。

Mold 3.0 分支的显著特点是将代码库从 C++ (C++20) 重写为 Rust。Mold 3.0 可以无缝替代 Mold 2.42.1(最后一个 C++ 版本),并支持所有先前可用的选项和目标架构。迁移到 Rust 使得项目能够避免处理损坏的目标文件时可能出现的问题——在 C++ 版本因越界访问而崩溃的情况下,Rust 实现会在边界检查阶段停止。Rust 实现的性能与 C++ 版本相当。

除了迁移到 Rust 之外,开发 3.0 分支的一个关键目标是提高与 GNU ld 的兼容性,并使该项目能够用作发行版中的默认链接器。 Linux构建系统已替换为 Cargo,测试系统已替换为 cargo test(取代了 ctest)。oneTBB 库已从依赖项中移除。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster