在链接描述文件的输出部分内部的位置计数器中设置符号

时间:2019-01-18 16:29:51

标签: ld linker-scripts

我想在部分的开始和结束处设置符号,因此可以这样定义我的部分:

.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的参数传递。我相信这将使所有输入部分都被消耗到最终输出部分之后,第二次对符号进行评估。

0 个答案:

没有答案