首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ELF文件中的重新定位加载项- Elf64_Rel vs Elf64_Rela?

ELF文件中的重新定位加载项- Elf64_Rel vs Elf64_Rela?
EN

Stack Overflow用户
提问于 2020-02-29 05:50:49
回答 1查看 1.2K关注 0票数 3

ELF文件包含两个处理重定位的结构:

Elf64_Rel

代码语言:javascript
复制
typedef struct {
    Elf64_Addr r_offset;
    Uint64_t
    r_info;
} Elf64_Rel;

Elf64_Rela

代码语言:javascript
复制
typedef struct {
    Elf64_Addr r_offset;
    uint64_t
    r_info;
    int64_t
    r_addend;
} Elf64_Rela;

我想看一下搬迁条目,但我不知道该用哪一个。手册页对此相当神秘。每个人都有特定的用法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-29 09:51:38

这取决于目标。大多数目标只使用这两种形式中的一种。搬迁系统五应用二进制接口 ( ELF规范)中的章节指出:

如前所述,只有Elf32_RelaElf64_Rela条目包含显式加载项。类型为Elf32_RelElf64_Rel的条目在要修改的位置中存储隐式加载项。根据处理器体系结构的不同,一种或另一种形式可能是必要的,也可能更方便。因此,特定机器的实现可以单独使用一种形式,也可以根据上下文使用任何一种形式。

ELF格式是自描述的,因为它显示是REL还是RELA重新定位(SHT_RELSHT_RELA表示节类型;DT_RELDT_RELSZDT_RELENTDT_RELADT_RELASZDT_RELAENT在动态部分)。但搬迁处理本身就是针对特定目标的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60462386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档