good morning Nick:
You try to isolate whether this really is a linker bug. (It certainly sounds like it is). If you can reproduce the problem just using assembler source files then please file a bug report with the binutils project (at http://sourceware.org/bugzilla). Including a *small* test case will really help.
did some research this morning and was able to finalize all the information. reports have been filed with GCC Bugzilla, Mikrocontroller Forum, and Comp.Arch.Embedded. basically, i found a new error that masks the original error and that prevents you from finding the original error of zero Interworking code. i created sample, simple assembly code for these online reports. pls see these links for more information: - GCC Bugzilla Bug 6726 http://sourceware.org/bugzilla/show_bug.cgi?id=6726 - GCC Bugzilla Bug 6727 http://sourceware.org/bugzilla/show_bug.cgi?id=6727 - Mikrocontroller.net Forum http://en.mikrocontroller.net/topic/158791#699646 - Comp.Arch.Embedded http://www.embeddedrelated.com/usenet/embedded/show/96927-1.php GLOBAL CONDITIONS if: - you enable --gc-sections - you enable Thumb Interworking PROBLEM 1 - if you do not define program entry point: you get the ldlang.c 4275 error SOLUTION 1 - simply define entry point _start or whatever using --entry if required PROBLEM - you position another section using --section-start before .text using -Ttext: you get ZERO interworking code SOLUTION - position .data/other section AFTER .text. place -Ttext before --section-start or -Tdata. i hope that this is helpful to you. Aaron -- {tel: +91-20-6526-7076; cell: +91-9970-591-079; fax: +1-800-450-5419}