From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L5fnA-0000rv-M9 for qemu-devel@nongnu.org; Thu, 27 Nov 2008 07:16:20 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L5fn9-0000rh-72 for qemu-devel@nongnu.org; Thu, 27 Nov 2008 07:16:19 -0500 Received: from [199.232.76.173] (port=39987 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L5fn9-0000re-1E for qemu-devel@nongnu.org; Thu, 27 Nov 2008 07:16:19 -0500 Received: from mail2.shareable.org ([80.68.89.115]:49810) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L5fn8-0004OH-Ic for qemu-devel@nongnu.org; Thu, 27 Nov 2008 07:16:18 -0500 Date: Thu, 27 Nov 2008 12:16:15 +0000 From: Jamie Lokier Subject: Re: [Qemu-devel] [PATCH] linux-user: Proper exit code for uncaught signals Message-ID: <20081127121615.GC18400@shareable.org> References: <20081123213724.GA15889@kos.to> <20081127114233.GC15592@networkno.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081127114233.GC15592@networkno.de> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Riku Voipio > > The proper exit code for dieing from an uncaught signal is -. > > The kernel doesn't allow exit() or _exit() to pass a negative value. > > To get the proper exit code we need to actually die from an uncaught > > signal. It's nothing like -, so the comment should be changed. The general principle of sending yourself a signal to get the right exit status is good. > > + sigfillset(&act.sa_mask); > > + act.sa_handler = SIG_DFL; > > + sigaction(host_sig, &act, NULL); What if the SIG_DFL _host_ behaviour is not to terminate the host process, but it has terminated the guest process? Awkward one. > > + /* For some reason raise(host_sig) doesn't send the signal when > > + * statically linked on x86-64. */ > > + kill(getpid(), host_sig); Is getpid() always right here, and should tgkill() or tkill() be used when clone is supported? -- Jamie