GNU LD fails to generate correct ARM Thumb veneer
Aaron P. D'Souza
adsouzp@netscape.net
Tue Jul 8 17:12:00 GMT 2008
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}
More information about the Gcc
mailing list