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

文档信息

前言

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

1.  Oracle Solaris 链接编辑器介绍

2.  链接编辑器

3.  运行时链接程序

4.  共享目标文件

第 2 部分快速参考

5.  链接编辑器快速参考

第 3 部分高级主题

6.  直接绑定

7.  生成目标文件以优化系统性能

8.  Mapfile

9.  接口和版本控制

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

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

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

辅助节

除了主输出目标文件之外,Solaris 链接编辑器还可以生成一个或多个辅助目标文件。辅助目标文件包含通常写入到主目标文件中的不可分配节。生成辅助目标文件后,主目标文件和所有关联的辅助目标文件将包含 SHT_SUNW_ancillary 节,该节包含用于标识这些相关目标文件的信息。这些目标文件中任何一个的辅助节都提供了标识和解释组的其他成员所需的信息。

此节包含以下结构的数组。请参见 sys/elf.h

typedef struct {
        Elf32_Word      a_tag;
        union {
                Elf32_Word      a_val;
                Elf32_Addr      a_ptr;
        } a_un;
} Elf32_Ancillary;

typedef struct {
        Elf64_Xword     a_tag;
        union {
                Elf64_Xword     a_val;
                Elf64_Addr      a_ptr;
        } a_un;
} Elf64_Ancillary;

对于此类型的每个目标文件,a_tag 都控制着 a_un 的解释。

a_val

这些目标文件表示具有各种解释的整数值。

a_ptr

这些目标文件表示程序虚拟地址。

存在以下辅助标记。

表 12-11 ELF 辅助数组标记

名称
c_un
ANC_SUNW_NULL
0
已忽略
ANC_SUNW_CHECKSUM
1
a_val
ANC_SUNW_MEMBER
2
a_ptr
ANC_SUNW_NULL

标记辅助节组的结尾。

ANC_SUNW_CHECKSUM

c_val 元素中提供文件的校验和。当 ANC_SUNW_CHECKSUM 位于第一个 ANC_SUNW_MEMBER 实例之前时,它将提供将从中读取辅助节的目标文件的校验和。如果它位于 ANC_SUNW_MEMBER 标记之后,则它将提供该成员的校验和。

ANC_SUNW_MEMBER

指定目标文件名称。a_ptr 元素包含以空字符结尾的字符串的字符串表偏移,该偏移提供文件名称。

辅助节中必须始终在第一个 ANC_SUNW_MEMBER 实例(标识当前目标文件)之前包含一个 ANC_SUNW_CHECKSUM。在其之后,针对构成完整目标文件集合的每个目标文件,都应当有一个 ANC_SUNW_MEMBER。每个 ANC_SUNW_MEMBER 之后都应当跟有该目标文件的 ANC_SUNW_CHECKSUM。因此,典型辅助节的结构如下所示。

标记
含义
ANC_SUNW_CHECKSUM
此目标文件的校验和
ANC_SUNW_MEMBER
目标文件 1 的名称
ANC_SUNW_CHECKSUM
目标文件 1 的校验和
ANC_SUNW_MEMBER
目标文件 N 的名称
ANC_SUNW_CHECKSUM
目标文件 N 的校验和
ANC_SUNW_NULL

因此,目标文件可以通过将初始 ANC_SUNW_CHECKSUM 与其之后的每一个进行比较,直到找到匹配项,来标识其自己。