A.3. binutils 中的更改


Red Hat Developer Toolset 9.0 带有 binutils 2.32

从以前的 Red Hat Developer Toolset 版本开始添加了或修改了以下功能:

Assembler

  • 添加了一个新的命令行选项 :--generate-missing-build-notes=yes。如果输入源不包含此类备注,它将创建 GNU Build Attribute 注释。
  • 特定于 AMD64 和 Intel 64 构架:

    • assembler 现在有一个 a -mvexwig=[0|1] 选项来控制 VEX.W-ignored (WIG) VEX 指令的编码。
    • 如果生成了 GNU 属性说明,可以使用 new -mx86-used-note=[yes|no] 选项进行选择。这些备注基于输入 assembler。
    • new -O[2|s] 命令行选项启用备用的、较短的指令编码。

BFD 链接器

  • 链接器的默认行为是创建单独的代码和数据片段。这使得二进制文件变得更大,但更安全,因为加载程序可以关闭对代码段的写权限。

    • 使用命令行选项 -z noseparate-code 来禁用此行为。链接器将像以前一样创建一个网段。
  • 使用 -Map 命令行选项创建的链接器映射文件现在包含合并 GNU 属性备注时发生的属性更改的详细信息。
  • --trace 选项不再报告存档中的成员。这使得 选项在生成应打包为链接程序错误报告的文件列表时很有用。

    • 要报告存档中的成员,请给选项两次。

GOLD 链接器

  • 改进了引用丢弃部分的重新定位的警告信息。
  • new- debug=plugin 选项可以更轻松地调试与插件相关的问题。
  • new -z keep_text_section_prefix 选项提供与 BFD 链接器的兼容性。
  • 改进了对 64 位 ARM 架构的支持。
  • 现在支持 Linux ABI 扩展的 .note.gnu.property 部分。
  • 现在支持 Intel Indirect Branch Tracking (IBT)和 Shadow Stack (AMD64 和 Intel 64 )。

其他二进制工具

  • addr2line,c++filt,nm, 和 objdump 工具现在对在取消字符串时允许的最大递归量有限制。这个限制的值由 DEMANGLE_RECURSE_LIMIT 常数定义。此常量在作为 Red Hat Developer Toolset 9.0 的一部分提供的 binutils 中的 2048 值。
  • --no-recurse-limit 选项可用于删除上述限制。它恢复这些工具的早期版本行为。这个选项允许忽略非常复杂的名称,但它也使工具容易被恶意构建的名称中的堆栈耗尽。
  • ar 归档管理器现在支持 O 修饰符来显示存档中的成员偏移。
  • objdump : -- disassemble 选项现在使用一个参数,指定 disassembly 的起始符号。Disassembly 将从此符号(直到下一个符号或功能的末尾)继续。
  • 64 位 ARM 处理器的不汇编器现在可以显示注释,当系统发现与可能导致无效指令的指令的不一致时所创建的注释。这些备注可以通过对 objdump 的" -M 备注 "选项打开。当指令和命名寄存器的组合无效时,不汇编器也会创建警告。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat