This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: [uClinux-dev] why no-mmu cannot support binfmt_aout.c
- From: loody <miloody at gmail dot com>
- To: uClinux development list <uclinux-dev at uclinux dot org>
- Cc: gcc-help <gcc-help at gcc dot gnu dot org>, binutils at sourceware dot org
- Date: Thu, 29 Jan 2009 14:07:39 +0800
- Subject: Re: [uClinux-dev] why no-mmu cannot support binfmt_aout.c
- References: <3a665c760901250906y2d52fc80gcdc5acfdcaac0bfd@mail.gmail.com> <497CF332.5020206@snapgear.com> <3a665c760901260851x4dfcc2beve282e8ba709e94e3@mail.gmail.com> <20090126235125.GC9296@shareable.org> <3a665c760901270902r582c60dfm2668a30c754aaf17@mail.gmail.com> <20090127183339.GA23412@shareable.org> <3a665c760901281016i562c8f6h36e77d72946bc704@mail.gmail.com> <4980EE0E.9040307@snapgear.com> <3a665c760901281600q19a5d0d2n4c4bb321cdbfba6c@mail.gmail.com> <4980F5C8.3040202@snapgear.com>
> 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,
miloody