The trouble is that the compiler is for some reason copying the argument
into a local stack slot and passing the address of that instead for &argc.
That faults because it happens to be the edge of the stack.  In the case
where there is an argc word on the stack (i.e. when run by the kernel), it
probably gets much further and just screws up the argument data.

I think it's fixed by putting a `volatile' on argc in those functions
(where all uses are &argc for stack magic).  The assembly I get from gcc3
looks ok for that (doesn't dereference 8(%ebp) any more).  

I'll put that change into libc.

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to