我可以在汇编源代码和ld脚本中声明自己的部分吗?

时间:2015-07-29 03:24:33

标签: linux assembly linker elf

我知道

  • 在汇编语言源代码中,我可以使用指令.text.data.rodata来声明部分。
  • 在链接描述文件中,我可以使用以下命令生成ELF文件的部分
.text : { *(.text) }
.data : { *(.data) }
  • 如果使用readelf,我可以看到.text.data等部分。

我的问题是:

  • 我可以通过asm代码和ld脚本向ELF添加自定义部分.mysection吗?
  • 如果我将自定义部分和构建项目添加为共享库,linux动态链接器/加载器能否正确处理我的共享库?或者我必须修改dyn-linker / loader?

欣赏任何建议。

1 个答案:

答案 0 :(得分:0)

我在总结@Jester @Ross Ridge的评论以供参考

是的,您可以添加自定义部分(无需更改内核动态加载程序,因为它将确定ELF标头中的部分) 你应该使用.section指令来避免错误“reset.S:汇编程序消息:reset.S:8:错误:未知的伪操作:`.mysection”。