Is there any way to know where the symbol comes from using objdump.

I have few symbols when i do objdump on my elf file (as follows):

8010864 g   F   .text   0000007c    __floatdisf

8010864 g   F   .text   0000007c    __aeabi_l2f

8010854 g   F   .text   0000008c    __floatundisf   

I am not sure where they come from. They are not part of the libm library.

有帮助吗?

解决方案

These functions are glue inserted by the compiler for conversions from integer to floating-point types. (floatdisf converts signed integer to float, floatundisf converts unsigned integer to float, and aeabi_l2f is an alias for floatdisf.)

The implementations of these functions in LLVM can be found at:

As the path suggests, they are part of the compiler_rt library, which is linked in automatically as needed.

其他提示

First of all extract all .o files from the lib.a (in some temp directory) ar -x lib.a

then find which .o file contains your symbol using below command ar -t lib.a | xargs grep "symbol" -l

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top