首页 > 解决方案 > 了解内部 LLVM IR 链接类型?

问题描述

LLVM IR Linkage Type介绍了 links type internal,但我不明白STB_LOCALELF两个词。

这种链接类型提取了什么?private和和有什么区别internal

标签: llvmllvm-ir

解决方案


ELFExecutable and Linkable Format是一种正式规范,允许您的操作系统正确解释二进制文件。

STB_LOCAL是绑定属性,ELF 用于将符号限定为目标文件或翻译单元的本地。

符号表保存与翻译单元/模块/程序的符号定义和引用相关的信息,并由多个部分或子表组成,例如符号字符串表。请参阅http://www.frascati.enea.it/documentation/tru6450/SUPPDOCS/OBJSPEC/DOCU_005.HTM

一个目标文件被分成多个部分(不同于符号表部分),并且每个符号表条目都是相对于某个部分定义的。

private链接通常用于与单个部分关联的符号。一个例子是局部函数符号。请参阅https://docs.oracle.com/cd/E19120-01/open.solaris/819-0690/chapter6-79797/index.html

和链接类型internalprivate意味着全局值只能由当前模块中的对象直接访问。唯一的问题是在私有情况下,值不会显示在符号表中。


推荐阅读