ld - 将符号设置为链接描述文件中输出部分内的位置计数器
问题描述
我想将符号设置为部分的开头和结尾,所以像这样定义我的部分:
.mysec : {
_mysec_start = .;
*(.bss)
*(COMMON)
_mysec_end = .;
}
但是,对于开始和结束符号,我得到相同的值,这相当于部分的结尾(即 _mysec_end 符号具有预期值):
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 6] .mysec NOBITS 0000ff0000009000 00019000
0000000000000228 0000000000000000 WA 0 0 8
Symbol table:
Num: Value Size Type Bind Vis Ndx Name
139: 0000ff0000009228 0 NOTYPE GLOBAL DEFAULT 6 _mysec_start
160: 0000ff0000009228 0 NOTYPE GLOBAL DEFAULT 6 _mysec_end
我怎么了?我相信我在过去看到人们在链接器脚本中这样做。
编辑:发现问题。这实际上是我的 Makefile 中的一个错误。我将链接器脚本作为参数传递给 ld 两次。我相信这将使符号在所有输入部分都被用于最终输出部分之后再次被评估。
解决方案
推荐阅读
- json - 无法在scala中使用来自kafka主题的json数据
- java - 为什么我的程序与所需的 if/else 语句不匹配?
- python - 无法使用 selenium、beautiufulsoup 和 python 正确抓取图像 url
- aws-lambda - 参数验证错误 Lambda 函数
- asp.net - 阻止 ASP.NET Core cookie-authentication 接受为不同主机名签名的 cookie
- aerospike - Aerospike python 客户端:只返回 bins 数据(没有关键细节和元数据)
- angular - 是否存在不需要初始值且能够提供当前值的 BehaviorSubject 等效项?
- c# - 如何在 LINQ - SQL 中选择 Null
- r - 用 c() 和 as.vector 创建向量有什么区别?
- python - 如何创建一个 numpy 张量