Question:
What is the difference between INPUT_SECTIONS & INPUT_SECTIONS_PIN_EXCLUSIVE?
Answer:
Each time an input sections is mentioned in an INPUT_SECTIONS command, the linker is instructed to "give another chance" to the input section by trying to map it in different output section (given the section has not been already mapped), thus achieving the effect of "one-to-many" mapping.
The INPUT_SECTIONS_PIN() and INPUT_SECTIONS_PIN_EXCLUSIVE() commands limit the effect of "one-to-many" mapping - once the input section is mentioned inside INPUT_SECTIONS_PIN(), the linker will not map it in any of the following output sections; an input section mentioned inside INPUT_SECTIONS_PIN_EXCLUSIVE()command cannot be mapped in any other output section.