[parisc-linux] Re: [glibc] tststatic failues, reduced to simple testcase.
Carlos O'Donell
carlos@baldric.uwo.ca
Sun, 31 Aug 2003 11:29:00 -0400
>
> Aflicted: sys_fork_wrapper, sys_clone_wrapper, sys_vfork_wrapper
>
> I'm tempted to remove the store and load of call-clobbered registers
> from our syscall path, push them into the glibc wrappers, and see what
> happens :)
What happens when your stack changes on the route back from the
syscall?
stw r19, -32(sp)
/* clone */
ldw -32(sp), r19
Obviously I could add a "if parent then ldw -32(sp),r19", but the child,
not having the same stack would be hard pressed if r19 changed during
the syscall. Although, I think I see that in glibc the child's function
is called via $$dyncall and I assume that might fixup r19 for the child.
Do any other syscalls change the stack on return? I can only really
think of all the fork-ish type syscalls doing that sort of stuff.
c.