JavaScript is required to for searching.
跳过导航链接
退出打印视图
链接程序和库指南     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分使用链接编辑器和运行时链接程序

1.  Oracle Solaris 链接编辑器介绍

2.  链接编辑器

3.  运行时链接程序

4.  共享目标文件

5.  接口和版本控制

6.  使用动态字符串标记建立依赖性

第 2 部分快速参考

7.  链接编辑器快速参考

8.  版本控制快速参考

第 3 部分高级主题

9.  直接绑定

10.  Mapfile

11.  可扩展性机制

第 4 部分ELF 应用程序二进制接口

12.  目标文件格式

文件格式

数据表示形式

ELF 头

ELF 标识

数据编码

节合并

特殊节

COMDAT 节

组节

功能节

散列表节

移动节

注释节

重定位节

重定位计算

SPARC: 重定位

SPARC: 重定位类型

64 位 SPARC: 重定位类型

x86: 重定位

32 位 x86: 重定位类型

x64: 重定位类型

字符串表节

符号表节

符号值

符号表布局和约定

符号排序节

寄存器符号

Syminfo 表节

版本控制节

版本定义章节

版本依赖性节

版本符号节

13.  程序装入和动态链接

14.  线程局部存储

第 5 部分附录

A.  链接程序和库的更新及新增功能

B.  System V 发行版 4(版本 1)Mapfile

索引

数据表示形式

目标文件格式支持 8 位字节、32 位体系结构和 64 位体系结构的各种处理器。不过,数据表示形式最好可扩展为更大或更小的体系结构。表 12-1表 12-2 列出了 32 位数据类型和 64 位数据类型。

目标文件表示格式与计算机无关的一些控制数据。此格式可提供目标文件的通用标识和解释。目标文件中的其余数据使用目标处理器的编码,无论在什么计算机上创建该文件都是如此。

表 12-1 ELF 32 位数据类型

名称
大小
对齐
目的
Elf32_Addr
4
4
无符号程序地址
Elf32_Half
2
2
无符号中整数
Elf32_Off
4
4
无符号文件偏移
Elf32_Sword
4
4
带符号整数
Elf32_Word
4
4
无符号整数
unsigned char
1
1
无符号小整数

表 12-2 ELF 64 位数据类型

名称
大小
对齐
目的
Elf64_Addr
8
8
无符号程序地址
Elf64_Half
2
2
无符号中整数
Elf64_Off
8
8
无符号文件偏移
Elf64_Sword
4
4
带符号整数
Elf64_Word
4
4
无符号整数
Elf64_Xword
8
8
无符号长整数
Elf64_Sxword
8
8
带符号长整数
unsigned char
1
1
无符号小整数

目标文件格式定义的所有数据结构都遵循相关类的自然大小和对齐规则。数据结构可以包含显式填充,以确保 4 字节目标的 4 字节对齐,从而强制结构大小为 4 的倍数,依此类推。数据在文件的开头也会适当对齐。例如,包含 Elf32_Addr 成员的结构在文件中与 4 字节边界对齐。同样,包含 Elf64_Addr 成员的结构与 8 字节边界对齐。


注 - 为便于移植,ELF 不使用位字段。