【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

LLVM 4 中将加入新的 LLVM 链接器 LLD

  • 2017-02-23
  • 本文字数:984 字

    阅读完需:约 3 分钟

LLD 将被添加到 LLVM 4 rc1 中,并默认启用。LLD 自称在性能上大大优于 GCC ld。虽然该新链接器早可用于构建在用的 FreeBSD/amd64 基系统(base system),但是这次将其添加到 LLVM 中依然是实验性的,在出现问题时会回退到 rc2。

在最新发布的 FreeBSD 项目季度状态报告中,下面一段话是对 LLD 进展情况和成熟度的最好实证:

上个季度中,LLD 开发人员做出了很大的进展。随着变更已提交到 LLD 和 FreeBSD,我们达成了一个重要的里程碑,即现在可以使用 LLD 链接整个 FreeBSD/amd64 基系统(内核与用户层)。

此外,BSD 项目贡献的一些补丁使得LLD 可以链接近95% 的BSD ports,大约是两万五千多个软件包。

LLD 工作启动于2015 年五月,目标在于重写ELF(UNIX)和COFF(Windows)系统链接器以提供更高的性能。据LLD 开发人员说,新链接器在总体上会比 GNU gold linker 快 1.2 到 2 倍,而 GNU gold linker 本身也是 Google 为改进 ld 链接性能而在内部创建的。事实上,LDD 可以比 ld 和 gold快得更多,尤其是编译大规模代码库时。另一方面,对于小型程序或者大量使用共享库的程序,LDD 的优势就并非那么明显了。和gold 一样,LLD 并不使用 BFD 格式去对不同的二进制文件格式做抽象。

尤其值得一提的是,LLD 非常之小,相比于 gold 的十六万五千行代码,用于 COFF 链接器的 LDD 只有七千行代码,而用于 ELF 链接器的是一万八千行代码。此外,它也可以嵌入到静态库等程序中,还可用于调用 lld::elf::link 入口点。

如果想在 LLVM 4 可用之前就试用 LLD,你可以通过构建源文件得到:

复制代码
$svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
$cd llvm/tools
$svn co http://llvm.org/svn/llvm-project/lld/trunk lld
$cd ../../..
$mkdir build
$cd build
$cmake -G “Ninja” -DCMAKE_BUILD_TYPE=”Release” -DCMAKE_INSTALL_PREFIX=”your_preferred_location” ../llvm
$ninja lld
$ninja install

一旦 LDD 编译完成,最安全可靠的使用方法是将 ld 逻辑链接到 ld.lld,这同样会使 LDD 与 GCC 一起工作。或者你也以使用 LLVM 的-fuse-ld=lld选项,这样就不必再做逻辑链接了。

查看英文原文: LLD, LLVM’s New Linker, Coming to LLVM 4


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-23 18:002632

评论

发布
暂无评论
发现更多内容

矿炼真金色,终见菩提心:首个商用的矿山大模型是怎样炼成的?

脑极体

AI 大模型

2023-07-19:布尔表达式 是计算结果不是 true 就是 false 的表达式 有效的表达式需遵循以下约定: ‘t‘,运算结果为 true ‘f‘,运算结果为 false ‘!(subExpr

福大大架构师每日一题

福大大架构师每日一题

Ubuntu 20.04系统编译安装Pure-Ftpd教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 Pure-FTPd

Ubuntu 20.04系统编译安装Tomcat教程。

百度搜索:蓝易云

云计算 tomcat Linux ubuntu 运维

Ubuntu 20.04系统编译安装Docker教程。

百度搜索:蓝易云

Docker 云计算 Linux ubuntu 运维

软件测试 | 编写第一个Java程序

测吧(北京)科技有限公司

测试

关于新兴技术对我们生活和工作方式的改变 | 社区征文

fifoaa

年中技术盘点

如何写出一手好代码(上篇-理论储备)?

慕枫技术笔记

后端 7月日更

Nautlius Chain主网正式上线,模块Layer3时代正式开启

鳄鱼视界

KCL v0.5.0 重磅发布 - 面向云原生场景更易用的语言、工具链,社区集成和扩展支持

Peefy

开源 DevOps 云原生 编程语言 Kubernetes Serverless

全部免费!整理了10个Python自动化办公库!(下)

程序员晚枫

Python 工具 机器人 自动化办公

AI大模型应用开发实战营第一周作业

panxiaochun

成功实践丨虚实交互,安擎赋能城市交通大数据应用

科技热闻

B站&华为云 | 融合虚实宇宙,开启云上视听的黄金时代

脑极体

AI B站 华为云

在 Amazon 上以高可用性模式实现 Microsoft SQL 数据库服务现代化的注意事项

亚马逊云科技 (Amazon Web Services)

Amazon

软件测试 | Java程序的运行机制和Java虚拟机

测吧(北京)科技有限公司

测试

Nautlius Chain主网正式上线,模块Layer3时代正式开启

EOSdreamer111

基于Qt编写超精美自定义控件

攻城狮Wayne

RocketMQ 事务消息导致事务消息阻塞 BUG 排查

陈皮

RocketMQ bug 事务消息

软件测试 | Java开发环境搭建

测吧(北京)科技有限公司

测试

Nautlius Chain主网正式上线,模块Layer3时代正式开启

威廉META

生成式 AI:改变未来的力量| 社区征文

度假的小鱼

年中技术盘点

NUC永存!英特尔刚刚和华硕聊了后续合作

E科讯

MVCC

陈皮

浅谈大模型时代的后台技术发展|社区征文

后台技术汇

年中技术盘点

全加器

陈皮

XR应用云流化如何提升扩展现实体验?!

3DCAT实时渲染

实时渲染云 XR应用云流化

百度与软通动力达成战略合作,共同探索大模型产业化落地

彭飞

Ubuntu 20.04系统编译安装phpMyAdmin教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 phpMyAdmin

百度智能云 X 软通动力:将结合大模型开发多领域智能应用

科技热闻

质效两全:媒体服务的创新“顶设”

阿里云视频云

云计算 视频云

LLVM 4中将加入新的LLVM链接器LLD_开源_Sergio De Simone_InfoQ精选文章