Compiling an ARM toolchain using crosstool-ng
chris.pringle at miranda.com
Mon Oct 25 05:28:00 EDT 2010
I'm having some issues generating a working toolchain for the ARM platform (specifically an MV78100). I'm using crosstool-ng to compile an ARM toolchain using GCC 4.4.3, GLIBC 2.9 and binutils 1.19. The toolchain compiles fine, and I can build applications/kernels without any problems. The kernel compiled with my toolchain works just fine, but applications that link with the GLIBC from my toolchain segfault. Bash sort of runs, but segfaults as soon as you do anything vaguely illegal (cd'ing to a non-existing directory for example). 'ls' works without any options, but segfaults if you do 'ls -al'. Most other commands (from coreutils or util-linux) segfault immediately.
Given that the kernel works fine, I'm thinking that my compiler ought to be okay; therefore pointing the finger at glibc. Does anyone have any ideas why I might be seeing this behaviour? I've tried 20 or so different compiles of the toolchain, all with different compiler and glibc build options, but the result is always the same.
I'm using the EABI, and have checked that the kernel and toolchain are both compiled to support it. I'm also using VFP, and have also checked that both kernel and toolchain are both compiled to support it (the kernel has a soft FP enabled too). Kernel version is 2.6.33.
I tried using the GLIBC from another third party compatible ARM toolchain, and it seems to work fine. I can take applications compiled with my own toolchain, and run them against the GLIBC from the third party toolchain and they work okay. If I try and run applications compiled with the third party toolchain against my own built glibc, they crash in the same way as described above.
If anyone has any thoughts, I'd be really grateful if you could share them.
Miranda Technologies Limited
Registered in England and Wales CN 02017053
Registered Office: James House, Mere Park, Dedmere Road, Marlow, Bucks, SL7 1FJ
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the linux-arm-toolchain