crt1.S start code

David McCullough davidm at snapgear.com
Sat Dec 24 11:23:19 UTC 2005


Jivin Thomas Eschenbacher lays it down ...
> Mike Frysinger wrote:
> > [...]
> > crt0.S in the link you posted specifically handled setting up of argc/argv 
> > diff between nommu and mmu
> 
> The comments in this part of userspace code say one thing.
> The counterpart in the kernel tells something different.
> See my posting from 08:22 today.
> 
> I see no difference between kernel 2.4/2.6 or arm with or without mmu,
> it seems to be the same for all ARM targets.
> 
> I still haven't seen any answer to my question: who puts the parameters
> on the stack??? I can only see argument passing through R{0,1,2,10} in
> the start_proc() macro. Please show me the piece of code in the kernel
> that prepares that stack frame...

Have a look at the flat loader (fs/binfmt_flat.c) and the argv array
creation code which is in the kernel dir IIRC.

Trust me,  nommu ARM is different,  and as the comment said,  for no
good reason,  it just happened to follow the m68knommu lead with args
and ended up different to MMU arm :-(

Cheers,
Davidm

-- 
David McCullough, davidm at cyberguard.com.au, Custom Embedded Solutions + Security
Ph:+61 734352815 Fx:+61 738913630 http://www.uCdot.org http://www.cyberguard.com



More information about the uClibc mailing list