为什么“主要”符号未在饼图二进制文件中删除?

时间:2019-04-16 06:50:46

标签: assembly binary strip position-independent-code

与其他任何符号一样,main被分类为静态符号,
因此,通常在剥离二进制文件后消失。
但是,昨天我发现main二进制文件中没有剥离此pie函数。

我在示例C程序myfunc1myfunc2,...和main中定义了几个符号。
而且我发现剥离二进制文件时,其他任何符号都没有消失,但是main符号在剥离后仍然存在。

我检查了原因,发现main被归类为动态符号,与其他任何用户定义符号不同。

Symbol table '.dynsym' contains 13 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
    // ...omitted...
    10: 000005e0    43 FUNC    GLOBAL DEFAULT   13 main
    11: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
    12: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable

问题:
为什么将main二进制中的pie分类为动态符号?
(我认为可以使用main条,就像在non-pie binary中一样。)

0 个答案:

没有答案