mapfile 指令可以超出一行,并且可以具有任意数量的空格,包括换行符。
对于所有语法讨论,以下表示法都适用。
空格或换行符可以出现在除名称或值的中间位置以外的任何位置。
以井号 (#) 开始并以换行符结束的注释可以出现在任何可以出现空格的位置。链接编辑器不会解释注释,注释仅用于提供说明。
所有指令均以分号 (;) 结束。{....} 节中的最后一个分号可以省略。
所有项都为固定宽度,所有冒号 (:)、分号 (;)、赋值运算符(=、+=、-=)和花括号 {....} 都按原样输入。
所有以斜体表示的项都是可替换的。
方括号 [ .... ] 用于表示可选语法。方括号不是表达形式的一部分,不会显示在实际指令中。
名称是区分大小写的字符串。Table 8–2 列出了 mapfile 中的常见名称和其他字符串。可以通过三种不同形式指定名称。
不带引号
非引用名称是一个字母和数字序列。第一个字符必须是字母,后面可以没有或跟有多个字母或数字。百分号 (%)、斜杠 (/)、句点 (.) 和下划线 (_) 将视为字母。美元符号 ($) 和连字符 (-) 将视为数字。
单引号
在单引号 (') 中,名称可以包含除单引号或换行符以外的任何字符。所有字符将解释为字面字符。指定文件路径或其他包含非引用名称中所不允许的常规可打印字符的名称时,这种引用形式会很方便。
双引号
在双引号 (") 中,名称可以包含除双引号或换行符以外的任何字符。反斜杠 (\) 是转义符,其工作方式与在 C 编程语言的串文字中的使用方式类似。带有反斜杠前缀的字符将替换为其所代表的字符,如Table 8–1 中所示。除了Table 8–1 中所示的字符外,任何字符跟在反斜杠后都是错误的。
value 表示数字值,可以是十六进制、十进制或八进制,并遵循 C 语言的整型常数所使用的规则。所有值都是无符号整数值,对于 32 位输出目标文件是 32 位的,对于 64 位输出目标文件是 64 位的。
segment_flags 将内存访问权限指定为Table 8–3 中所列一个或多个值的空格分隔列表,对应于 <sys/elf.h> 中定义的 PF_ 值。
|
|
|