[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.