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 fileii- 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
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.