没有合适的资源?快使用搜索试试~ 我知道了~
GNU链接器ld_v2.34-精简版ld1
试读
122页
需积分: 0 1 下载量 143 浏览量
更新于2022-08-03
收藏 578KB PDF 举报
GNU链接器ld_v2.34-精简版ld1
The GNU linker
ld
(GNU Binutils)
Version 2.34
Compiled by Ben Shushu
Wechat: runninglinuxkernel
Steve Chamberlain
Ian Lance Taylor
Red Hat Inc
nickc@credhat.com, doc@redhat.com
The GNU linker
Edited by Jeffrey Osier (jeffrey@cygnus.com)
Copyright
c
1991-2020 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of
the GNU Free Documentation License, Version 1.3 or any later version published by the
Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with
no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free
Documentation License”.
i
Table of Contents
1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Command-line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Options Specific to i386 PE Targets . . . . . . . . . . . . . . . . . . . . . . 35
2.1.2 Options specific to C6X uClinux targets . . . . . . . . . . . . . . . . . . 42
2.1.3 Options specific to C-SKY targets . . . . . . . . . . . . . . . . . . . . . . . . 42
2.1.4 Options specific to Motorola 68HC11 and 68HC12 targets
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.1.5 Options specific to Motorola 68K target . . . . . . . . . . . . . . . . . . 43
2.1.6 Options specific to MIPS targets . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3 Linker Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1 Basic Linker Script Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Linker Script Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 Simple Linker Script Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4 Simple Linker Script Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.1 Setting the Entry Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.2 Commands Dealing with Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.3 Commands Dealing with Object File Formats. . . . . . . . . . . . . 49
3.4.4 Assign alias names to memory regions . . . . . . . . . . . . . . . . . . . . 49
3.4.5 Other Linker Script Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5 Assigning Values to Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.5.1 Simple Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.5.2 HIDDEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5.3 PROVIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5.4 PROVIDE HIDDEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5.5 Source Code Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.6 SECTIONS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.1 Output Section Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6.2 Output Section Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6.3 Output Section Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6.4 Input Section Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.4.1 Input Section Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.4.2 Input Section Wildcard Patterns. . . . . . . . . . . . . . . . . . . . . 61
3.6.4.3 Input Section for Common Symbols. . . . . . . . . . . . . . . . . . 63
3.6.4.4 Input Section and Garbage Collection. . . . . . . . . . . . . . . . 63
3.6.4.5 Input Section Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.5 Output Section Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6.6 Output Section Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6.7 Output Section Discarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
ii The GNU linker
3.6.8 Output Section Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6.8.1 Output Section Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.8.2 Output Section LMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.8.3 Forced Output Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.6.8.4 Forced Input Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.6.8.5 Output Section Constraint. . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.8.6 Output Section Region . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.8.7 Output Section Phdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.8.8 Output Section Fill. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.9 Overlay Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.7 MEMORY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8 PHDRS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.9 VERSION Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.10 Expressions in Linker Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.10.1 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.10.2 Symbolic Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.10.3 Symbol Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.10.4 Orphan Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.10.5 The Location Counter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.10.6 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.10.7 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.10.8 The Section of an Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.10.9 Builtin Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.11 Implicit Linker Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4 Machine Dependent Features. . . . . . . . . . . . . . . . . 89
4.1 ld and the ARM family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5 BFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.1 How It Works: An Outline of BFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.1.1 Information Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.1.2 The BFD canonical object-file format. . . . . . . . . . . . . . . . . . . . . 94
6 Reporting Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.1 Have You Found a Bug? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2 How to Report Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Appendix A MRI Compatible Script Files . . 101
Appendix B GNU Free Documentation License
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
LD Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Chapter 1: Overview 1
1 Overview
ld combines a number of object and archive files, relocates their data and ties up symbol
references. Usually the last step in compiling a program is to run ld.
ld accepts Linker Command Language files written in a superset of AT&T’s Link Editor
Command Language syntax, to provide explicit and total control over the linking process.
This version of ld uses the general purpose BFD libraries to operate on object files. This
allows ld to read, combine, and write object files in many different formats—for example,
COFF or a.out. Different formats may be linked together to produce any available kind of
object file. See Chapter 5 [BFD], page 93, for more information.
Aside from its flexibility, the gnu linker is more helpful than other linkers in providing
diagnostic information. Many linkers abandon execution immediately upon encountering
an error; whenever possible, ld continues executing, allowing you to identify other errors
(or, in some cases, to get an output file in spite of the error).
剩余121页未读,继续阅读
资源推荐
资源评论
167 浏览量
2022-08-03 上传
149 浏览量
2019-11-24 上传
177 浏览量
2020-01-03 上传
5星 · 资源好评率100%
2021-12-21 上传
134 浏览量
170 浏览量
5星 · 资源好评率100%
2020-03-12 上传
2022-03-29 上传
119 浏览量
140 浏览量
5星 · 资源好评率100%
127 浏览量
2021-08-08 上传
174 浏览量
194 浏览量
2020-09-30 上传
2022-06-15 上传
5星 · 资源好评率100%
2020-05-01 上传
191 浏览量
5星 · 资源好评率100%
145 浏览量
5星 · 资源好评率100%
193 浏览量
资源评论
袁大岛
- 粉丝: 40
- 资源: 305
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据结构上机实验大作业-线性表选题.zip
- 字幕网页文字检测20-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 雪毅云划算试客系统v2.9.7标准版 含购物返利+免费试用+9.9包邮+品牌折扣+推广中心等
- 冒泡排序算法详解及Java与Python实现
- 实时 零代码、全功能、强安全 ORM 库 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
- 混合有源滤波器(HAPF) MATLAB-Simulink仿真 仿真模拟的HAPF补偿前后,系统所含的谐波对比如下图所示
- csi-driver-nfs
- 认识小动物-教案反思.docx
- pdfjs2.5.207和4.9.155
- 2023-04-06-项目笔记 - 第三百五十五阶段 - 4.4.2.353全局变量的作用域-353 -2025.12.22
- OPCClient-UA源码OPC客户端源码(c#开发) 另外有opcserver,opcclient的da,ua版本的见其他链接 本项目为VS2019开发,可用VS其他版本的编辑器打开项目 已应
- 2023-04-06-项目笔记 - 第三百五十五阶段 - 4.4.2.353全局变量的作用域-353 -2025.12.22
- PHP快速排序算法实现与优化
- deploy.yaml
- 家庭用具检测15-YOLO(v8至v11)数据集合集.rar
- RuoYi-Cloud-Plus 微服务通用权限管理系统
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功