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

Static library links differently with gcc ld and armlink

Hi,
I've built a static library using arm-none-eabi-gcc and used the -fdata-sections, -ffunction-sections, and --gc-sections to reduce the library memory footprint.

I've used that library successfully within an application sample when building with arm-none-eabi-gcc, but when I try to build the same application with armcc (Keil), I'm getting lots of undefined symbols in the static library.

When I remove the --gc-sections and build using arg-none-eabi-gcc I can see the same undefined symbols as on Keil, I assume --gc-sections got rid of them. But if I add to Keil the --split_sections and --remove options, Keil is still complaining about the undefined symbols.

So three questions:

1- Why the same static libray can be linked with gcc ld and not with armlink?

2- Isn't --gc-sections supposed not to remove undefined symbols as in the ld manual?

3- If I resolve all the undefined symbols by adding the necessary files, will that have considerable impact on library size or will I have only simple references added?

0