[uClinux-dev] why no-mmu cannot support binfmt_aout.c

loody miloody@gmail.com
Thu Jan 29 06:07:00 GMT 2009

> Why is only supporting FLAT a problem for you?
> (It is not entirely true to say uClinux only supports FLAT,
> some uClinux architectures support fdelf-pic).

Sorry for using the word, ONLY. Tears will make the screen blur, you
know.   :-(....

>> I don't know how to make a flat with the arm-linux compiler linked
>> from uclinux.org. You can see it in the previous letter.
> That is why I said to get the uClinux-dist.
> It builds applications with that compiler against its
> own uClibc. They work. I specifically test it for the
> GDB/ARMulator target before uClinux-dist releases.

According all your suggestions, I stop trying to use different
cross-toolchains except
1. arm-linux-tools-20061213.tar.gz
2. arm-linux-tools-20070808.tar.gz

And I try to use both of them to compile applications at user.
2 can get the FLAT I need but 1 will fail while calling the linker and it says
ld.real: address 0x22380 of busybox_unstripped.gdb section .text is
not within region flatmem

So I wipe my tears out and recompile the kernel with 2 happily :)
but tears full fill my eyes again when my platform get
unknown-instruction-exception, while executing below instructions:

   e1a0e00f        mov     lr, pc
   e12fff13        bx      r3


There are 2 ways come to my mind to solve this problem:
a. find out why 1 cannot transform the flat successfully and I need
someone who familiar with ld to help me.
b. check why 2 will make my platform get unknown-instruction-exception.
     2, buildroot and Codesourcery-toolchain all will let this happen.
     I guess the culprit is gcc 4.2xxxxx, since 1 use gcc 3.3xxxx.
     Jamie gives me some directions and I am still working on it.
     Is there any specific compile option in 4.2 and 3.3 will let this happen?
     What is the specialty of the instruction, "mov lr,pc", which let
arm cpu fail?

 appreciate your help and consolation,

More information about the Gcc-help mailing list