Re: Possible bug in wait4(), 2.1.126-129 ?

Brandon S. Allbery KF8NH (allbery@kf8nh.apk.net)
Tue, 24 Nov 1998 21:17:03 -0500


In message <Pine.LNX.4.02.9811240515020.4637-100000@moisil.cs.columbia.edu>,
Io
n Badulescu writes:
+-----
| > Note that POSIX explicitly disallows setting the action
| > of SIGCHLD to SIG_IGN. It follows that crond and atd are
| > not POSIX compliant.
|
| Never mind POSIX though, as long as Linux allows it it ought to be
| documented, even if it has a big warning before it. Solaris certainly does
+--->8

It's not disallowed, it's undefined. The distinction is because BSD
4.x-derived Unixes and System III-derived Unixes do different things with
SIG_IGN of SIGCH?LD; instead of mandating one of them, POSIX explicitly
washes its hands of the matter and lets a POSIX-compliant system do either
(or launch Nethack :-)

The bug is because whoever built the cron binary tried to call Linux a BSD
when it is in fact rather more like System V. This was a common cause of
"Linux" bugs several years ago; I'd thought that most developers had figured
out by now that Linux is behaviorally SVID/POSIX, not 4.xBSD, so I
completely forgot about the wait() behavior which a few years ago would have
sent me looking for the erroneous -DBSD. :-)

-- 
brandon s. allbery	[os/2][linux][solaris][japh]	 allbery@kf8nh.apk.net
system administrator	     [WAY too many hats]	   allbery@ece.cmu.edu
carnegie mellon / electrical and computer engineering			 KF8NH
			  Kiss my bits, Billy-boy.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/