Don't understand startup code in ARM bFLT environment

tike64 tike64 at yahoo.com
Wed Aug 20 11:52:09 UTC 2008


From: David McCullough
> Jivin tike64 lays it down ...
> > ... This makes me also wonder if we are the only two trying to use the uClibc on ARM NOMMU system?
> 
> You are not the only ones,  but I suspect a lot of armnommu users are
> using the uClinux-dist with it's uClibc for their library.
> 
> The latest dist is built and tested on arm mmu and nommu quite
> regularly.

Ok, that's the explanation. Maybe I should go the same route.

> As for the argv/argc processing,  IIRC it has always been different for
> nommu/mmu.  It's painful that it's this way but the first nommu port
> changed it IIRC and it has stuck with us.
> 
> You should be able to find a discussion on argc/argc somewhere in the
> uClinux-dev archives.

I think that the argc/argv processing is Ok. The problem is the crash at exit.

> > There is still something I can't get right in my head. By only looking at the 
> > codes I would be sure that staticly linked program in full ARM-with-MMU system 
> > would crash in the same way. Yet with gdb I see that in that case the r0 is zero 
> > at the start of the _start. Who is clearing it?
> 
> Take the current uClibc sources and compare them with the older version
> that is in the uClinux-dist and it should be fairly easy to work out if
> something has changed there.

uClinux-dist version doesn't seem to use the value at all. The difference seems to be in the Linux kernel. In NOMMU case the kernel passes argc in r0 but in with-MMU case it seems to pass zero in r0. But I can't find the difference from the sources. When I look at the kernel sources, it seems to always pass argc in r0. But I'm afraid this is OT.

--

Timo


      



More information about the uClibc mailing list