GNU 汇编链接中的非标准段是什么东西?比如UBOOT中就有。got的非标准段
答案:1 悬赏:80 手机版
解决时间 2021-04-26 21:40
- 提问者网友:咪咪
- 2021-04-25 22:20
GNU 汇编链接中的非标准段是什么东西?比如UBOOT中就有。got的非标准段
最佳答案
- 五星知识达人网友:玩家
- 2021-04-25 23:12
这些都是自定义段。gnu中的非标准段,就是gnu组织自定义的段。用来debug用,统计信息,以及注释使用。
这些都是在一个叫做linker script的文件中定义的。一般后缀为 .lds,也就是说,文件名为 xxx.lds
参考手册:http://sourceware.org/binutils/docs-2.21/ld/Scripts.html#Scripts
一个更为详细的例子: http://wiki.osdev.org/Linker_Scripts追问那如UBOOT中定义的一个自定义段:
.got : { *(.got) } ;指定 got 段, got 段式是 uboot 自定义的一个段, 非标准段
*(.data)是数据段....
但*(.got)是什么东西????????????????追答.got : { *(.got) } ;
表明 凡是 xxx.got,比如 aaa.got, bbb.got, ccc.got 段都属于 .got段。*就是通配符。
.got 段的具体作用,因为是用户自定义的,只能参见具体使用它的代码,或者相关说明书。
这些段的作用,主要是在编译的时候,让某些内容放在同一块内存位置,便于特定的使用场景。
详细的使用方法,参见手册 http://sourceware.org/binutils/docs-2.21/ld/Scripts.html#Scripts追问但问题是,这个.got 段到底是在那里定义的,这个段的数据不是编译器生成的?
如果不是编译器生成的,那我们怎么定义这个段的内容????追答你看看你目录下面有 *.lds 吗。
没有的话,它使用的就是默认的 lds.
你一点都不了解ld script。怎么能明白。搜索ld script看看相关文档。追问还以为非标准段是什么呢?
我只是想验证一下,这个非标准段是指不是由c编译器生成的吧
但是是汇编中可以用.section来定义一个段,以下的内容就是属于这个段的。。。。
这些都是在一个叫做linker script的文件中定义的。一般后缀为 .lds,也就是说,文件名为 xxx.lds
参考手册:http://sourceware.org/binutils/docs-2.21/ld/Scripts.html#Scripts
一个更为详细的例子: http://wiki.osdev.org/Linker_Scripts追问那如UBOOT中定义的一个自定义段:
.got : { *(.got) } ;指定 got 段, got 段式是 uboot 自定义的一个段, 非标准段
*(.data)是数据段....
但*(.got)是什么东西????????????????追答.got : { *(.got) } ;
表明 凡是 xxx.got,比如 aaa.got, bbb.got, ccc.got 段都属于 .got段。*就是通配符。
.got 段的具体作用,因为是用户自定义的,只能参见具体使用它的代码,或者相关说明书。
这些段的作用,主要是在编译的时候,让某些内容放在同一块内存位置,便于特定的使用场景。
详细的使用方法,参见手册 http://sourceware.org/binutils/docs-2.21/ld/Scripts.html#Scripts追问但问题是,这个.got 段到底是在那里定义的,这个段的数据不是编译器生成的?
如果不是编译器生成的,那我们怎么定义这个段的内容????追答你看看你目录下面有 *.lds 吗。
没有的话,它使用的就是默认的 lds.
你一点都不了解ld script。怎么能明白。搜索ld script看看相关文档。追问还以为非标准段是什么呢?
我只是想验证一下,这个非标准段是指不是由c编译器生成的吧
但是是汇编中可以用.section来定义一个段,以下的内容就是属于这个段的。。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯