了解 LLVM IR 内部链接类型?

Understanding LLVM IR linkage type internal?

LLVM IR Linkage Type引入联动类型internal,但是我不明白STB_LOCALELF字。

这种联动类型提取出来有什么作用? privateinternal 有什么区别?

ELFExecutable 和可链接格式 是一种正式规范,可让您的 OS 正确解释二进制文件。

STB_LOCALELF 中的绑定属性,它将符号限定为目标文件或翻译单元的本地符号。

符号 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

internalprivate链接类型都意味着全局值只能被当前模块中的对象直接访问。唯一的事情是在私人情况下,该值不会显示在符号 table.