博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LLVM 4中将加入新的LLVM链接器LLD
阅读量:6509 次
发布时间:2019-06-24

本文共 1199 字,大约阅读时间需要 3 分钟。

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

\\

在最新发布的中,下面一段话是对LLD进展情况和成熟度的最好实证:

\\
\

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

\
\\

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

\\

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

\\

尤其值得一提的是,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选项,这样就不必再做逻辑链接了。

\\

查看英文原文:

\\

感谢对本文的审校。

\

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

转载地址:http://cudfo.baihongyu.com/

你可能感兴趣的文章
【Mac】Mac键盘实现Home, End, Page UP, Page DOWN
查看>>
实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求
查看>>
安德鲁斯----多媒体编程
查看>>
[zz]在linux中出现there are stopped jobs 的解决方法
查看>>
Delphi下实现全屏快速找图找色 一、数据提取
查看>>
查询表字段信息
查看>>
关于机器学习的最佳科普文章:《从机器学习谈起》
查看>>
dxFlowChart运行时调出编辑器
查看>>
NET Framework 3.0 (WinFX) RTM发布
查看>>
图片拼接器
查看>>
C++ TinyXml操作(含源码下载)
查看>>
中断小笔记
查看>>
C#委托、事件、消息(入门级)
查看>>
FreeBinary 格式说明
查看>>
使用Spring Cloud和Docker构建微服务
查看>>
NB-IoT的成功商用不是一蹴而就
查看>>
九州云实战人员为您揭秘成功部署OpenStack几大要点
查看>>
1.电子商务支付方式有哪些 2.比较不同支付方式的优势劣势
查看>>
医疗卫生系统被爆漏洞,7亿公民信息泄露……
查看>>
神秘函件引发的4G+与全网通的较量
查看>>