【问题标题】:What's the meaning of elfnn-<arch>.c and elfxx-<arch>.c in binutils/bfd?binutils/bfd中的elfnn-<arch>.c和elfxx-<arch>.c是什么意思?
【发布时间】:2021-01-29 03:37:23
【问题描述】:

我正在跟踪 binutils 源代码。
我发现在 binutils/bfd 中有名为 elfnn-&lt;arch&gt;.celfxx-&lt;arch&gt;.c 的文件。
elfnn和elfxx是什么意思?

谢谢。

【问题讨论】:

    标签: binutils


    【解决方案1】:

    如果架构仅支持 32 位或 64 位基于 ELF 的 ABI,则该架构的代码位于名为 elf32-arch.c 或 elf64-arch.c,分别。在某些情况下,架构同时支持两者,但实现非常不同,因此您会看到 elf32-arch.c 和 elf64-arch.c 源文件(例如 ppc、mips)。

    但一些更现代的架构(同时开发了 32 位和 64 位支持)共享大量实现(例如,aarch64、ia64、riscv)。在这些情况下,您会看到一个 elfnn-arch.c 源文件。这个文件是一个模板;构建过程从模板中自动生成文件的 elf32- 和 elf64- 特化。尽管如此,很多代码对于 32 位和 64 位都是通用的,无需专门化,因此您会在 elfxx-arch.c 源文件中找到这些代码,这不是一个模板。

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 2015-05-16
      • 2010-11-05
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 2010-10-12
      相关资源
      最近更新 更多