在链接器脚本中创建新段,同时保留默认段

xyw*_*ang 6 linker linker-scripts

我在链接文件中创建了一些特殊部分,我希望它们位于不同的段中以具有不同的页面权限。

在链接描述文件中,PHDRS 命令可以指定链接文件中的段。但是,正如文档所说,除了命令中指定的之外,PHDRS 不会创建任何默认定义的段。我在ld --verbose输出中没有发现 PHDRS 命令。

有没有办法保留默认值?或者段的默认规范是什么,以便我可以在自己的链接器脚本中编写它们?

Har*_*nry 2

在寻找类似答案时遇到了这个。已经晚了,但其他人可能会遇到它。要获取当前使用的链接器脚本,您可以在链接时使用gcc -Wl,--verbose ...ld --verbose ...,这会将脚本(以及一堆其他内容)转储到标准输出。据我所知,没有办法保留默认的程序头并只向它们附加一个条目,而无需编写自定义脚本来解析上述输出。另一方面,如果您想添加一个部分,显然有一个技巧objcopy --add-section可以让您向现有的 elf 文件添加一个部分。