This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can't find .text section of certain functions while doing libgcc extraction for FPU

Hello people. I've been doing libgcc subset extraction for cortex m4(armv7e-m). I'm using gcc version 4.9.1. The basic methodology I'm using includes,

i- Build gcc and locate the armv7e-m/libgcc/libgcc.a file
ii- Disassemble the libgcc.a file and search for the requisite functions like __aeabi_f2d(__extendsfdf2).
iii- Perform cleanup and I'm done.

This has worked for most of the functions under consideration. However certain functions just don't seem to have a .text section. It must be noted that the .text section is where the important stuff happens, and this is what I want to extract. Like when I extracted __aeabi_l2f(__floatdisf) which is used for long long to single precision conversion, I got the disassembly which you can see in the attached document. Is it possible for functions to just be stubs and have no code whatsoever. This is rather anti-intuitive and difficult to comprehend. Can someone please give some explanation.

Thanks,
Bilal

__floatdisf_DUMP.zip
Parents
  • Hi bwasim,


    as myy says, the file which would be linked from libgcc.a is not _floatdisf.o nor _arm_floatdisf.o, but _arm_addsubsf3.o is linked.

    The __aeabi_l2f is defined in the _arm_addsubsf3.o.
    To know which library files had been linked is to compile a source file with "-Wl,-Map=output.map" option.

    Best regards,
    Yasuhiko Koumoto.

Reply
  • Hi bwasim,


    as myy says, the file which would be linked from libgcc.a is not _floatdisf.o nor _arm_floatdisf.o, but _arm_addsubsf3.o is linked.

    The __aeabi_l2f is defined in the _arm_addsubsf3.o.
    To know which library files had been linked is to compile a source file with "-Wl,-Map=output.map" option.

    Best regards,
    Yasuhiko Koumoto.

Children
No data