ENTRY(SYMBOL)
将符号 SYMBOL 设置为程序的入口地址
入口地址是进程执行的第一条指令在程序空间的地址。连接器 ld 中其他设置程序入口地址的方式包括:
1、采用 ld 命令行的参数 -e;
2、如果定义了 start 符号,则使用 start 符号值
3、如果存在 .text section , 则使用 .text section 的第一字节的位置值
INCLUDE filename
包含名称为 filename 的其他连机器过程的输入文件
INPUT(file,file,...)
将括号内的文件作为链接过程的输入文件
GROUP(file,file,...)
指定需要重复搜索符号的多个输入文件。 file 必须是库文件, 且 file 文件被ld 重复扫描,知道不再有新的未定义的引用出现
OUTPUT(filename)
定义输出文件的名字,等同于 ld 命令行参数 “-o filename”. 如果同时使用脚本文件和命令行参数,则命令行参数的优先级更高
STARTUP(filename)
制定 filename 为第一个输入文件
OUTPUT_ARCH(BFDARCH)
设置输出文件对应的处理器架构
OUTPUT_FORMAT(BFDNAME)
设置输出文件使用的 BFD 格式,等同于 ld 命令行参数 “-o format BFDNAME” 。 如果同时使用脚本文件和命令行参数,则命令行参数的优先级更高。
section
|
说明
|
.sdata
|
作为 8 字节或更少字节标量的外部变量,其值可能会被程序更改,应作为 .sdata(有初始值并且初始值不为0) 条目访问
|
.sbss
|
作为 8 字节或更少字节标量的外部变量,其值可能会被程序更改,应作为 .sbss (无初始值或者初始值为0)条目访问
|
.data
|
超过 8 字节标量的外部变量,其值可能会被程序更改,应作为 .data(有初始值切并且初始值不为0) 条目访问。
|
.bss
|
超过 8 字节标量的外部变量,其值可能会被程序更改,应作为 .bss (无初始值或者初始值为0)条目访问。
|
.rodata
|
目前const 声明的变量仍然是放在 .rodata 中,不存在大小区别的
|
LLVM 和 GCC 在一直更新,以后个能会有新的功能