Bug#325600: New patch idea
As *reverting* Aurelien's patch does not change anything, I looked into some
source codes around sys_wait4 and osf_wait4 (in glibc and kernel). The
interesting thing is:
Linuxthreads uses osf_wait4 only on alpha, the other architectures uses the
sys_wait4 syscall. As linuxthreads is for linux only and there is no need
for it if you build glibc on an Digital Unix (OSF) alpha system, it is not
needed to call the compatibility syscalls of the kernel that emulate OSF
Looking into the kernel source, osf_wait4 was changed in 2.6.11 or so.
In your original patch you used the standard glibc function wait4 (which
uses the syscall sys_wait4). As the last parameter of the used wait4 is
always NULL, you do not need the compatibility function of OSF (and it is an
overhead in the kernel!).
So you could change the INLINE_SYSCALL from osf_wait4 to sys_wait4 and try
again (I have no time to do this).
If this was the problem, we have a "good" patch. By the way, the
waitpid_no_cancel code change only affects linux on alpha (as other systems
does not know osf_wait4). And on Digital Unix itself there is no need for
linuxthreads at all, so it will not break glibc build on Digital Unix.
H.-H.-Meier-Allee 63, D-28213 Bremen
> -----Original Message-----
> From: Tom Evans [mailto:firstname.lastname@example.org]
> Sent: Sunday, April 15, 2007 6:28 AM
> To: Uwe Schindler
> Subject: Re: Bug#325600: closed by Aurelien Jarno (Closing bugs fixed in
> unreleased version 2.4-1 of the glibc)
> Reverting that patch had no effect on zombies (at least for me) - back
> to investigating ... :)