Linker 如何对齐PT_加载程序标题中的所有部分?

Linker 如何对齐PT_加载程序标题中的所有部分?,linker,elf,linker-scripts,Linker,Elf,Linker Scripts,我正在尝试用链接器脚本和elf文件实现自定义加载程序 我可以成功加载PT_加载类型程序头,其中可以包含.text,.data节 但我真正想要的是分别加载每个数据和文本“部分”,并对齐页面。 到目前为止,我可以成功地找到PT\u LOAD程序头中包含的每个部分 但是,我需要将此部分与页面对齐(0x1000)才能将其加载到单独的页面 如何定位特定程序标题中的所有部分,使其与页面对齐 使每个部分页面对齐 e、 g.检查每个部分是否等于页面大小(例如0x1000) 如果它大于您的页面大小,请将其四舍五入

我正在尝试用链接器脚本和elf文件实现自定义加载程序

我可以成功加载PT_加载类型程序头,其中可以包含
.text
.data

但我真正想要的是分别加载每个数据和文本“部分”,并对齐页面。

到目前为止,我可以成功地找到
PT\u LOAD
程序头中包含的每个部分

但是,我需要将此部分与页面对齐(0x1000)才能将其加载到单独的页面


如何定位特定程序标题中的所有部分,使其与页面对齐

使每个部分页面对齐

e、 g.检查每个部分是否等于页面大小(例如0x1000) 如果它大于您的页面大小,请将其四舍五入到页面大小。 有一些类似下面列出的常规

#define ROUND_TO_PAGE(x,y) (((x) + (y)) & (~(y)))
x = your section
y = page_size - 1 & page_size = 4096 (i.e.yours - 0x1000)