I have been running recently into an interesting case where the GNU ARM Linker failed to link an application with strange error messages:
Solving Problem with GNU Linker and “referenced in section, defined in discarded section ” Error Message
3