0

有什么方法可以知道符号的来源使用objdump.

当我objdump在我的 elf 文件上做的时候,我的符号很少(如下):

8010864 g   F   .text   0000007c    __floatdisf

8010864 g   F   .text   0000007c    __aeabi_l2f

8010854 g   F   .text   0000008c    __floatundisf   

我不确定它们来自哪里。它们不是libm图书馆的一部分。

4

2 回答 2

1

这些函数是编译器插入的胶水,用于从整数到浮点类型的转换。(floatdisf将有符号整数转换为浮点数,floatundisf将无符号整数转换为浮点数,并且aeabi_l2f是 的别名floatdisf。)

LLVM 中这些函数的实现可以在以下位置找到:

正如路径所示,它们是compiler_rt库的一部分,可根据需要自动链接。

于 2013-10-24T02:12:23.643 回答
0

首先从 lib.a 中提取所有 .o 文件(在某个临时目录中) ar -x lib.a

然后使用以下命令查找哪个 .o 文件包含您的符号 ar -t lib.a | xargs grep "symbol" -l

于 2013-10-24T02:01:14.170 回答