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工作啟動於2023年五月,目標在於重寫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 llvm\ $cd llvm/tools\ $svn co 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
\\ 感謝冬雨對本文的審校。
\
LLVM 4中將加入新的LLVM鏈結器LLD
lld將被新增到llvm 4 rc1中,並預設啟用。lld自稱在效能上大大優於gcc ld。雖然該新鏈結器早可用於構建在用的freebsd amd64基系統 base system 但是這次將其新增到llvm中依然是實驗性的,在出現問題時會回退到rc2。在最新發布的freebsd專案季度狀態報告中,...
LLVM 4中將加入新的LLVM鏈結器LLD
lld將被新增到llvm 4 rc1中,並預設啟用。lld自稱在效能上大大優於gcc ld。雖然該新鏈結器早可用於構建在用的freebsd amd64基系統 base system 但是這次將其新增到llvm中依然是實驗性的,在出現問題時會回退到rc2。在最新發布的freebsd專案季度狀態報告中,...
LLVM4更新 簡化物件定義
簡介 llvm4.0 更新 在xcode4.4引入 中,新增了一些新的簡便 書寫的方法 新增文字的數字,陣列,字典,以及表示式的語法 得益於 llvm 編譯器 4.0 的更新,增加了許多新特性,其中包括更方便的 輸入。這一更新可大大提高寫 的效率。這要在定義時使用 符號,正如nsstring定義操作...