我知道
- 在汇编语言源代码中,我可以使用指令
.text
、.data
或.rodata
来声明节。 - 在链接器脚本中,我可以使用以下命令将部分生成到 ELF 文件中
.text : { *(.text) } .data : { *(.data) }
- 如果使用 readelf,我可以看到
.text
、.data
等部分。
我的问题是:
- 我可以通过 asm 代码和 ld 脚本向 ELF 添加自定义节
.mysection
吗? - 如果我添加自定义部分并将项目构建为共享库,Linux 动态链接器/加载器可以正确处理我的共享库吗?或者我必须修改 dyn-linker/loader?
感谢任何建议。
最佳答案
我总结了@Jester @Ross Ridge 对问题的评论供引用
是的,您可以添加自定义部分(无需更改内核动态加载程序,因为它将确定 ELF header 中的部分) 您应该使用 .section 指令来避免错误“reset.S:汇编器消息:reset.S:8:错误:未知伪操作:`.mysection”。
关于linux - 我可以在汇编源代码和 ld 脚本中声明自己的部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690709/