ZHCU947E June 2015 – January 2023
创建从段到符号的人工引用
.symdepend dst symbol name[,src symbol name]
.symdepend 指令会创建一个从定义 src symbol name 的段到 dst symbol name 符号的人工引用。如果定义 src symbol name 的段包含在输出模块中,这样可防止链接器删除包含 dst symbol name 的段。如果未指定 src symbol name,将创建从当前段的引用。
全局符号 的定义方式与任何其他符号相同;即,它显示为标签或由 .set、.equ、.bss 或 .usect 指令定义。如果多次定义了某个全局符号,链接器会发出“多重定义”错误。(汇编器可以为局部符号提供类似的“多重定义”错误。)
.symdepend 指令只在模块实际使用某符号时才创建符号表条目,而 .weak 指令始终为一个符号创建符号表条目,无论模块是否使用该符号(请参阅 .weak 主题)。
如果该符号在当前模块中定义,则使用 .symdepend 指令声明该符号及其定义可由其他模块在外部使用。这些类型的引用在链接时解析。