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

文档信息

前言

1.  Oracle Solaris 链接编辑器介绍

2.  链接编辑器

3.  运行时链接程序

4.  共享目标文件

5.  应用程序二进制接口与版本控制

接口兼容性

内部版本控制

创建版本定义

创建弱版本定义

定义不相关接口

绑定到版本定义

验证新增目标文件中的版本

指定版本绑定

绑定到额外的版本定义

重新定义接口

绑定到弱版本

版本稳定性

可重定位目标文件

外部版本控制

协调版本化文件名

同一进程中的多个外部版本化文件

6.  支持接口

7.  目标文件格式

8.  线程局部存储

9.  Mapfile

A.  链接编辑器快速参考

B.  版本控制快速参考

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

D.  直接绑定

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

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

索引

第 5 章

应用程序二进制接口与版本控制

由链接编辑器和运行时链接程序处理的 ELF 目标文件提供了许多其他目标文件可以绑定到的全局符号。这些符号描述了目标文件的应用程序二进制接口 (Application Binary Interface, ABI)。在目标文件演变过程中,此接口可能会由于添加或删除全局符号而发生更改。此外,目标文件演变还可能涉及内部实现更改。

版本控制是一些可以应用于某个目标文件以指示接口与实现更改的技术。这些技术使目标文件的演变过程受到控制,同时又维护向下兼容性。

本章介绍了如何定义目标文件的 ABI,此外,还介绍了对此 ABI 接口的更改影响下兼容性的方式。我们将借助模型来探讨这些概念,说明如何将接口和实现的更改纳入目标文件的新发行版。

本章重点介绍动态可执行文件与共享目标文件的运行时接口。对说明和管理这些动态目标文件内更改的方法只作一般性介绍。附录 B中提供了适用于共享目标文件的一组通用命名约定和版本控制方案。

动态目标文件的开发者必须注意接口更改的结果,并了解管理此类更改的方法,尤其是关于维护与以前所发布的目标文件的向下兼容性。

由任何动态目标文件实现可用的全局符号都代表目标文件的公共接口。通常,进行链接编辑之后留在目标文件中的全局符号数多于希望公开的符号数。这些全局符号源于用于创建目标文件的可重定位目标文件之间所需的符号状态。这些符号代表目标文件内部的专用接口。

要定义目标文件的 ABI,应当首先确定目标文件中那些希望使其公开可用的全局符号。可以在最终的链接编辑过程中使用链接编辑器的 -M 选项和关联的 mapfile 来建立这些公共符号。缩减符号作用域中介绍了此技术。此公共接口可在正在创建的目标文件内建立一个或多个版本定义。这些定义构成目标文件演变时添加新接口的基础。

以下各节基于此初始公共接口。不过,首先应了解如何对接口的各种更改进行分类,以便对这些接口进行适当管理。