16. The non-transitory, tangible computer readable storage medium of claim 15 , wherein the method includes: updating, at the linker, the dependency information of all the symbols.
15. A non-transitory, tangible computer readable storage medium, encoded with processor readable instructions to perform a method for: optimizing, at a compiler, the source code of files of a computer program at link-time; receiving, at a linker, a customized linker script, wherein the customized linker script is provided by an embedded application developer and overrides a default linker script existing within the linker, the customized liker script defining output sections for files of an executable version of the files of the computer program; adding, by the compiler, to intermediate representation files having global or local symbols, metadata comprising default section assignment information for the symbols; recording, by the linker, for symbols in machine code files, an origin path and an output section; sending, from the linker to the compiler, detailed global scope and use information, then; parsing, by the compiler, based on a request and the detailed global scope and use information from the linker, the intermediate representation files; recording, by the compiler, the symbols and related symbol information comprising the default section assignment information and dependency information of the intermediate representation files, then; assigning output sections to the symbols based on both the default section assignment information and instructions from the customized linker script; and linking optimized code of the files of the computer program based on the assigned output sections.