While I was trying to fit an application in a limited space I noticed that the compiler/linker does not appear to remove functions that are uncalled across C files.
I have a number of C files that are common to a number of applications but not all of these functions are called by all applications.
If I comment out these functions the application will then reduce in size, so I am pretty sure the linker is not removing these (or at least part of these) unused functions. This is regardless of the optimisation level I have set for the compiler.
Ideally I want the compiler/linker to remove these functions automatically.
I have trawled through the options on armlink but I cant seem to find what I want.
I am pretty sure I am missing something obvious. So can anyone explain how I achieve this?
Thanks
Yes, it's possible to play with linker or with compiler.
I just wanted to note that it does take some extra steps in the tools to perform removal of unused functions. And these extra steps can't be taken for granted. They obviously are very valuable for embedded programming since the available space is so important.