了解 LLVM IR 内部链接类型?
Understanding LLVM IR linkage type internal?
LLVM IR Linkage Type引入联动类型internal
,但是我不明白STB_LOCAL和ELF字。
这种联动类型提取出来有什么作用? private
和 internal
有什么区别?
ELF
或 Executable 和可链接格式 是一种正式规范,可让您的 OS 正确解释二进制文件。
STB_LOCAL
是 ELF
中的绑定属性,它将符号限定为目标文件或翻译单元的本地符号。
符号 table 包含与翻译 unit/module/program 的符号定义和参考相关的信息,由多个部分或子 table 组成,例如符号字符串 table。参见 http://www.frascati.enea.it/documentation/tru6450/SUPPDOCS/OBJSPEC/DOCU_005.HTM
一个目标文件被分成多个部分(不同于符号 table 部分)并且每个符号 table 条目都是 定义的 与某些部分相关.
private
链接通常用于与 单个 部分关联的符号。一个例子是局部函数符号。参见 https://docs.oracle.com/cd/E19120-01/open.solaris/819-0690/chapter6-79797/index.html
internal
和private
链接类型都意味着全局值只能被当前模块中的对象直接访问。唯一的事情是在私人情况下,该值不会显示在符号 table.
中
LLVM IR Linkage Type引入联动类型internal
,但是我不明白STB_LOCAL和ELF字。
这种联动类型提取出来有什么作用? private
和 internal
有什么区别?
ELF
或 Executable 和可链接格式 是一种正式规范,可让您的 OS 正确解释二进制文件。
STB_LOCAL
是 ELF
中的绑定属性,它将符号限定为目标文件或翻译单元的本地符号。
符号 table 包含与翻译 unit/module/program 的符号定义和参考相关的信息,由多个部分或子 table 组成,例如符号字符串 table。参见 http://www.frascati.enea.it/documentation/tru6450/SUPPDOCS/OBJSPEC/DOCU_005.HTM
一个目标文件被分成多个部分(不同于符号 table 部分)并且每个符号 table 条目都是 定义的 与某些部分相关.
private
链接通常用于与 单个 部分关联的符号。一个例子是局部函数符号。参见 https://docs.oracle.com/cd/E19120-01/open.solaris/819-0690/chapter6-79797/index.html
internal
和private
链接类型都意味着全局值只能被当前模块中的对象直接访问。唯一的事情是在私人情况下,该值不会显示在符号 table.