Hi,
Way back in 2007-09-30 you wrote:
> Assumpte: [Balloon] EABI balloon lives
>
> I've just managed to boot a balloon with a full EABI (debian armel)
> setup.
Now I'm hoping this was with a Balloon2 although I'm guessing from the
timing that it was probably a Balloon3 ?
Anyway any help/hints or discouragement you can give me would be
gratefully received.
I'm trying to get the new ARM EABI running on the Balloon2 using a Gcc
toolchain built under Gentoo.
gcc-4.4.3-r2
binutils-2.20.1-r1
linux-headers-2.6.30-r1
glibc-2.11.2
The actual toolchain build command I used was:
EXTRA_ECONF="--with-mode=arm --with-arch=armv4 --with-no-thumb-interwork" \
crossdev --stable --target armv4-softfloat-linux-gnueabi
I have a patched 2.6.36-rc5 kernel running with an OABI filesystem, and
it supports statically linked EABI applications without problem. Dynamic
linked programs on the other hand all fail with an "Illegal Instruction"
error.
The error is caused by the "bx pc, lr" instructions scattered through the
code. I believe the dynamic link process is supposed to translate these
instructions into "mov pc, lr" as part of the relocation process but my
loader /lib/ld-2.11.2.so contains the dreaded bx instruction itself.
So have I missed a simple trick ?
If not my way forward is to try and build /lib/ld-2.11.2.so without the bx
instruction, or would it be better to try and emulate the bx instruction in
the kernel ?
If you got here, Thanks for your time.
--
Bob Dunlop
Guralp Systems Limited
http://www.guralp.com