有没有办法知道符号来自objdump
的来源。
当我在我的精灵文件上objdump
时,我有几个符号(如下所示):
8010864 g F .text 0000007c __floatdisf
8010864 g F .text 0000007c __aeabi_l2f
8010854 g F .text 0000008c __floatundisf
我不确定他们来自哪里。它们不是libm
库的一部分。
答案 0 :(得分:1)
这些函数是编译器插入的胶水,用于从整数到浮点类型的转换。 (floatdisf
将有符号整数转换为float,floatundisf
将无符号整数转换为float,aeabi_l2f
是floatdisf
的别名。)
LLVM中这些功能的实现可以在以下位置找到:
如路径所示,它们是compiler_rt
库的一部分,根据需要自动链接。
答案 1 :(得分:0)
首先从lib.a中提取所有.o文件(在某些临时目录中)
ar -x lib.a
然后使用以下命令查找哪个.o文件包含您的符号
ar -t lib.a | xargs grep "symbol" -l