[crosstool-ng] ARM EABI problem

Matthias Kaehlcke matthias@kaehlcke.net
Tue May 13 20:42:00 GMT 2008


[sorry for my delayed response, for some reason your mail didn't
arrive to me, i just saw and downloaded it from the mailing list
archive]

El Sat, May 10, 2008 at 07:55:21PM +0200 Yann E dot  MORIN ha dit:

> On Saturday 10 May 2008 13:58:42 Matthias Kaehlcke wrote:
> > i use crosstool-ng to generate an ARM EABI toolchain. the toolchain
> > builds without problems, but doesn't seem to generate valid
> > binaries. when booting the system with a rootfs generated using the
> > toolchain the kernel halts at:
> > Freeing init memory: 120K
> 
> What is it booting into? I have a similar problem (EABI _and_ OABI) where
> setjmp from uClibc causes segfaults, though setjmp is most probalbly not the
> real culprit. I suspect a problem with gas. But I might be highly wrong here.

the problem was that arm-gcc generates by default EABI code for
armv5t, while the AT91RM9200 is armv4t. the patch provided by martin
resolved the problem.

> > the target is an kb9202b board with a AT91RM9200 cpu. the kernel is
> > compiled with EABI support.
> 
> Well, EABI is still marked as being EXPERIMENTAL, because I don't master it
> yet...
> 
> A toolchain built with ct-ng builds linux kernels just fine. The problems
> arise in userland...
>
> > the same rootfs built with an EABI toolchain of the emdebian
> > project works. 
> > on the working EABI rootfs i put a statically linked hello world
> > program, compiled with the crosstool-ng EABI toolchain. when i try to
> > execute it the following message is shown:
> > # ./hello_world_static
> > Illegal instruction
> 
> See other post: arm-v4 vs. arm-v5
> 
> Anyway, I'm inverstigating this EABI problem...
> 
> Could you just try to build both a kernel and a static hello world with
> your EABI toolchain build with ct-ng? Mine is working just fine here.
> Problems arise with more complex programs an dynamic linking.

the kernel and the static hello world were build with the ct-ng EABI
toolchain. as i said above, with martins patch it started to
work. maybe your cpu is armv5t? 

--
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona

             If liberty means anything at all, it means the
           right to tell people what they do not want to hear
                            (George Orwell)
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'
		:
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4      

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list