oracle home
Oracle
®
Solaris 11.2 链接程序和库指南
退出打印视图
Search Term
搜索范围:
本文档
整个文档库
» ...
Documentation Home
»
Oracle Solaris 11.2 Information Library (简体中文)
»
Oracle
®
Solaris 11.2 链接程序和库指南
»
快速参考
»
链接编辑器快速参考
»
静态模式
»
创建可重定位目标文件
更新时间: 2014 年 7 月
Oracle
®
Solaris 11.2 链接程序和库指南
文档信息
使用此文档
产品文档库
获得 Oracle 支持
反馈
第 I 部分 使用链接编辑器和运行时链接程序
第 1 章 Oracle Solaris 链接编辑器介绍
链接编辑
静态可执行文件
运行时链接
相关主题
动态链接
应用程序二进制接口
32 位环境和 64 位环境
环境变量
支持工具
第 2 章 链接编辑器
调用链接编辑器
直接调用
使用编译器驱动程序
跨链接编辑
指定链接编辑器选项
输入文件处理
归档处理
共享目标文件处理
与其他库链接
库命名约定
同时链接共享目标文件和归档
命令行中归档的位置
链接编辑器搜索的目录
使用命令行选项
使用环境变量
运行时链接程序搜索的目录
初始化节和终止节
符号处理
符号可见性
符号解析
简单解析
复杂解析
致命解析
未定义符号
生成可执行输出文件
生成共享目标文件输出文件
弱符号
输出文件中的暂定符号顺序
定义其他符号
使用 -u 选项定义其他符号
定义符号引用
定义绝对符号
定义暂定符号
扩充符号定义
缩减符号作用域
删除符号
外部绑定
字符串表压缩
生成输出文件
标识功能要求
标识平台功能
标识计算机功能
标识硬件功能
标识软件功能
软件功能帧指针处理
软件功能地址空间限制处理
创建符号功能函数系列
创建符号功能数据项系列
将目标文件功能转换为符号功能
归档注意事项
功能系列试验
重定位处理
位移重定位
桩目标文件
使用桩目标文件隐藏过时的接口
辅助目标文件
调试器访问及辅助目标文件使用
压缩调试节
压缩的成本和益处
父目标文件
调试帮助
第 3 章 运行时链接程序
共享目标文件依赖项
查找共享目标文件依赖项
运行时链接程序搜索的目录
配置缺省搜索路径
动态字符串标记
重定位处理
重定位符号查找
缺省符号查找
运行时插入
执行重定位的时间
重定位错误
装入其他目标文件
延迟装入动态依赖项
提供 dlopen 的替代项
初始化和终止例程
初始化和终止代码的限制和缺点
初始化和终止顺序
安全性
运行时链接编程接口
装入其他目标文件
重定位处理
符号查找
缺省符号查找模型
定义全局目标文件
隔离组
目标文件分层结构
获取新符号
测试功能
使用插入
调试帮助
调试功能
调试器模块
第 4 章 共享目标文件
命名约定
记录共享目标文件名称
在归档中包含共享目标文件
已记录名称冲突
具有依赖项的共享目标文件
依赖项排序
作为过滤器的共享目标文件
生成标准过滤器
生成辅助过滤器
过滤组合
filtee 处理
第 II 部分 快速参考
第 5 章 链接编辑器快速参考
静态模式
创建可重定位目标文件
创建静态可执行文件
动态模式
创建共享目标文件
创建动态可执行文件
第 III 部分 高级主题
第 6 章 直接绑定
观察符号绑定
启用直接绑定
使用 B direct 选项
使用 z direct 选项
使用 DIRECT mapfile 关键字
直接绑定和插入
本地化符号实例
删除多次定义的同名符号
定义显式插入
阻止直接绑定到某个符号
使用 B nodirect 选项
使用 NODIRECT mapfile 关键字
第 7 章 生成目标文件以优化系统性能
使用 elfdump 分析文件
底层系统
延迟装入动态依赖项
与位置无关的代码
K pic 和 K PIC 选项
删除未使用的材料
删除未使用的节
删除未使用的文件
删除未使用的依赖项
最大化可共享性
将只读数据移动到文本中
折叠多重定义数据
使用自动变量
动态分配缓冲区
最小化分页活动
重定位
符号查找
执行重定位的时间
组合重定位节
复制重定位
使用 B symbolic 选项
配置共享目标文件
第 8 章 Mapfile
mapfile 结构和语法
mapfile 版本
条件输入
指令语法
mapfile 指令
CAPABILITY 指令
HW 属性
HW_1 / HW_2 属性
MACHINE 属性
PLATFORM 属性
SF 属性
SF_1 属性
DEPEND_VERSIONS 指令
ALLOW 属性
REQUIRE 属性
HDR_NOALLOC 指令
PHDR_ADD_NULL 指令
LOAD_SEGMENT / NOTE_SEGMENT / NULL_SEGMENT 指令
ALIGN 属性(仅限 LOAD_SEGMENT)
ASSIGN_SECTION 属性
DISABLE 属性
FLAGS 属性(仅限 LOAD_SEGMENT)
IS_ORDER 属性
MAX_SIZE 属性(仅限 LOAD_SEGMENT)
NOHDR 属性(仅限 LOAD_SEGMENT)
OS_ORDER 属性
PADDR 属性(仅限 LOAD_SEGMENT)
ROUND 属性(仅限 LOAD_SEGMENT)
SIZE_SYMBOL 属性(仅限 LOAD_SEGMENT)
VADDR(仅限 LOAD_SEGMENT)
SEGMENT_ORDER 指令
STACK 指令
STUB_OBJECT 指令
SYMBOL_SCOPE / SYMBOL_VERSION 指令
ASSERT 属性
AUXILIARY 属性
FILTER 属性
FLAGS 属性
SIZE 属性
TYPE 属性
VALUE属性
预定义段
映射示例
示例:节到段的分配
示例:预定义节的修改
链接编辑器内部:节和段的处理
节到段的分配
预定义段和入口条件的 mapfile 指令
第 9 章 接口和版本控制
接口兼容性
内部版本控制
创建版本定义
创建弱版本定义
定义不相关接口
绑定到版本定义
验证新增目标文件中的版本
指定版本绑定
绑定到额外的版本定义
重新定义接口
绑定到弱版本
版本稳定性
可重定位目标文件
外部版本控制
协调版本化文件名
同一进程中的多个外部版本化文件
第 10 章 使用动态字符串标记建立依赖性
特定于功能的共享目标文件
减少 filtee 搜索
特定于指令集的共享目标文件
减少 filtee 搜索
特定于系统的共享目标文件
查找关联的依赖项
非绑定产品之间的依赖性
安全性
第 11 章 可扩展性机制
链接编辑器支持接口
调用支持接口
32 位环境和 64 位环境
支持接口函数
支持接口示例
运行时链接程序审计接口
建立名称空间
创建审计库
调用审计接口
记录局部审计程序
记录全局审计程序
审计接口交互
审计接口函数
审计接口控制流量
审计接口示例
审计接口演示
审计接口限制
使用应用程序代码
la_pltexit 的用法
直接检查栈的函数
运行时链接程序调试器接口
控制进程和目标进程之间的交互
调试器接口代理
调试器导出接口
代理处理接口
错误处理
扫描可装入目标文件
事件通知
跳过过程链接表
动态目标文件填充
调试器导入接口
第 IV 部分 ELF 应用程序二进制接口
第 12 章 目标文件格式
文件格式
数据表示形式
ELF 头
ELF 标识
数据编码
节
节合并
节压缩
GNU 样式的节压缩
特殊节
辅助节
COMDAT 节
组节
功能节
散列表节
移动部分
注释节
重定位节
重定位计算
SPARC: 重定位
SPARC: 重定位类型
64-bit SPARC: 重定位类型
x86: 重定位
32-bit x86: 重定位类型
x64: 重定位类型
字符串表节
符号表节
符号值
符号表布局和约定
符号排序节
寄存器符号
Syminfo 表节
版本控制节
版本定义章节
版本依赖性节
版本符号节
第 13 章 程序装入和动态链接
程序头
基本地址
段权限
段内容
程序装入(特定于处理器)
程序的解释程序
运行时链接程序
动态节
全局偏移表(特定于处理器)
过程链接表(特定于处理器)
32-bit SPARC: 过程链接表
64-bit SPARC: 过程链接表
32-bit x86: 过程链接表
x64: 过程链接表
第 14 章 线程局部存储
C/C++ 编程接口
线程局部存储节
线程局部存储的运行时分配
程序启动
创建线程
启动后动态装入
延迟分配线程局部存储块
线程局部存储的访问模型
SPARC: 线程局部变量访问
SPARC: 常规动态 (General Dynamic, GD)
SPARC: 局部动态 (Local Dynamic, LD)
32-bit SPARC: 初始可执行 (Initial Executable, IE)
64-bit SPARC: 初始可执行 (Initial Executable, IE)
SPARC: 局部可执行 (Local Executable, LE)
SPARC: 线程局部存储的重定位类型
32-bit x86: 线程局部变量访问
32-bit x86: 常规动态 (General Dynamic, GD)
x86: 局部动态 (Local Dynamic, LD)
32-bit x86: 初始可执行 (Initial Executable, IE)
32-bit x86: 局部可执行 (Local Executable, LE)
32-bit x86: 线程局部存储的重定位类型
x64: 线程局部变量访问
x64: 常规动态 (General Dynamic, GD)
x64: 局部动态 (Local Dynamic, LD)
x64: 初始可执行 (Initial Executable, IE)
x64: 局部可执行 (Local Executable, LE)
x64: 线程局部存储的重定位类型
第 V 部分 附录
附录 A 链接程序和库的更新及新增功能
Oracle Solaris 11.2 发行版
Oracle Solaris 11.1 发行版
Oracle Solaris 11
Oracle Solaris 10 1/13 发行版
Oracle Solaris 10 8/11 发行版
过时的功能
Solaris 10 5/08 发行版
Solaris 10 8/07 发行版
Solaris 10 1/06 发行版
Solaris 10 发行版
附录 B System V 发行版 4(版本 1)mapfile
mapfile 结构和语法
段声明
映射指令
段内节的排序
大小符号声明
文件控制指令
映射示例
mapfile 选项缺省值
内部映射结构
索引
索引 数字和符号
索引 A
索引 C
索引 D
索引 E
索引 F
索引 G
索引 L
索引 M
索引 N
索引 O
索引 P
索引 R
索引 S
索引 T
语言:
简体中文
创建可重定位目标文件
要创建可重定位目标文件,请使用
–r
选项。
$
ld -r -o temp.o file1.o file2.o file3.o ....
上一页
下一页