【发布时间】:2015-05-16 02:08:12
【问题描述】:
我正在阅读 xv6 讲座。 我有一个名为 initcode.S 的文件要链接到内核中。
现在以这种方式创建了两个符号:
extern char _binary_initcode_start[], _binary_initcode_size[];
在函数内部。
讲座说:
作为内核构建过程的一部分,链接器嵌入定义了两个特殊符号 _binary_initcode_starcode_size 的二进制文件,指示二进制文件的位置和大小。
我了解 binutils 正在获取此汇编代码的地址和大小。
我想知道这个符号:它是默认的吗?我的搜索并没有清楚地证明这一点。
_binary-> 原来是汇编代码_initcode-> 我的文件名_start-> 我感兴趣的参数。
这意味着任何编译的汇编代码也会有这些变量。
不过,我没有证据。
问题是:
是_binary_myAsmFileHere_myParameterhere是binutils给汇编文件默认的变量结构,用来导出它们的地址、大小等吗?
谁能告诉我我的假设是否正确以及是否比这更好:规则
谢谢
【问题讨论】:
标签: c assembly linker kernel binutils