Cross compiler libgcc.a with -mthumb-interwork

John Carter john.carter@tait.co.nz
Tue Jun 21 22:35:00 GMT 2005


I'm trying to create a cross compiler hosted on i386 linux targetting an 
embedded arm thumb device with thumb-interworking on.

When I attempt to link my app which has some ARM 
code in it (hence the need for interwork) I get this message...
   /opt/gcc4thumb/lib/gcc/arm-elf/4.1.0/../../../../arm-elf/bin/ld:
   Warning:
   /opt/gcc4thumb/lib/gcc/arm-elf/4.1.0/thumb/libgcc.a(_udivdi3.o) does not
   support interworking, whereas test_Application does

(I'm trying to get an estimate of how much ram/flash our very resource 
constrained embedded app will use if we move to gcc 4.1 when it comes out.)

I have tried configuring CVS version of gcc latest to..
../combined/configure --target=arm-elf --enable-languages=c,c++  \
--with-newlib --prefix=/opt/gcc4arm --with-cpu=arm7tdmi \
--enable-target-optspace

I have tried exporting the following flags before building...
   export CFLAGS_FOR_TARGET='-Os -mthumb -mthumb-interwork'
   export CXXFLAGS_FOR_TARGET='-Os -mthumb -mthumb-interwork'
   export LDFLAGS_FOR_TARGET='-Os -mthumb -mthumb-interwork'
   export LIBCFLAGS_FOR_TARGET='-Os -mthumb -mthumb-interwork'
   export LIBCXXFLAGS_FOR_TARGET='-Os -mthumb -mthumb-interwork'
but no success.

Please, what is the magic handshake to do this? I been around this track 
sooo many times, in soo many different ways, I'm getting tired of my own 
tail!

(One of the other routes I tried was building --target=thumb-elf, but gas 
doesn't support that...)

Thanks for your patience,

John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter@tait.co.nz
New Zealand

Carter's Clarification of Murphy's Law.

"Things only ever go right so that they may go more spectacularly wrong later."

>From this principle, all of life and physics may be deduced.



More information about the Gcc mailing list