This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: ARM Thumb - not working under Linux either
"Lewin A.R.W. Edwards" wrote:
>
> Hello Jonathan,
>
> > > /tmp/ccSGafJS.s:544: Error: byte or halfword not valid for base register
> > > make[1]: *** [src/debug/dbg_gdb.o.d] Error 1
> >
> >It's a bug in gcc's reload. I've talked with people on the binutils list
>
> Good, glad to know it is a known/recogized problem and not the evil demon
> riding on my shoulder. And at least now I can build the CVS sources of
> eCos, which is a big step.
>
> Do you have any insight on why I can't get eCos compiled with Thumb
> interworking? It would be an acceptable workaround for me if I could have
> the OS in 32-bit mode and my app in Thumb mode, since the friskier parts
> are all in my app anyway. At the moment, we are only demoing the technology
> so it isn't vital to get everything tweaked to perfection; the final
> firmware doesn't have to ship until Q3 :)
I had a quick look. What you are seeing is messages like the following?
home/jlarmour/sourceware/test/arm-elf/H-i686-pc-linux-gnu/lib/gcc-lib/arm-elf/2.97/../../../../arm-elf/bin/ld:
_div_df.o(__divdf3): warning: interworking not enabled.
This object is actually from libgcc - part of the compiler. It has not been
built with -mthumb-interwork.
You probably need to edit (in your gcc sources) gcc/config/arm/t-arm-elf
and uncomment:
# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
# MULTILIB_DIRNAMES += normal interwork
# MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork*
Then rebuild your compiler from scratch.
If that works, I'll add it to the thumb gcc building instructions.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine