将 Binutils 从 2.16.1 升级到 2.19 有优势吗? 为什么?
在 PSPSDK (Homebrew) 中,我们使用 Binutils 2.16.1 来汇编和链接 PlayStation Portable 的代码,但是该版本已经过时了(3 个版本已取代它)。 社区和我一直在将 GCC 和 newlib 更新到最新的稳定版本,并且一切似乎都可以与旧的 binutils 一起使用。
GCC 会使用 binutils 2.19 生成更好的代码吗? 为什么? binutils 2.19 会产生比 2.16.1 更好的 elf 文件和库吗? 为什么?
In the PSPSDK (Homebrew) we are using the Binutils 2.16.1 to assemble and link the code for the PlayStation Portable, however that release is getting quite outdated (3 versions have superseded it). The community and me have been updating the GCC and newlib to the latest stable versions and everything seems to work with the old binutils.
Will GCC produce better code with binutils 2.19? Why?
Will binutils 2.19 produce better elf files and libs than 2.16.1? Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
binutils
2.19 有一个新的 ELF 链接器,名为gold
它是多线程的,用现代 C++ 编写,比通常的 ld 链接器快很多。 然而,我不确定改编它所涉及的工作。除此之外,新版本总是一个好主意。 当然,性能和错误修复可能已包括在内。 我想我肯定会尝试一下,如果出现问题,你仍然可以后退。
binutils
2.19 has a new ELF linker calledgold
which is multi-threaded, written in modern C++, and quite a bit faster than the usualld
linker. I'm not sure however about the work involved to adapt it.Other than that, well new versions always are a good idea. Performance and bug fixes are likely to have been included, of course. I think i would certainly try it and if something goes wrong you can still backstep.
一般来说,您不需要升级 binutils,除非遇到更高版本的 binutils 中修复的某些错误,或者需要新功能(例如链接器 build-ids)。
特别是,GCC 代码生成在很大程度上独立于 binutils(除了像
__thread
这样的结构,它需要 binutils 一定程度的支持)。In general, you don't need to upgrade binutils unless you run into some bug fixed in a later binutils version, or need new features (such as linker build-ids).
In particular, GCC code generation is largely independent of binutils (except for constructs like
__thread
, which require certain level of support from binutils).