From: doko Date: Wed, 15 Aug 2007 08:19:32 +0000 (+0000) Subject: 2007-08-15 Samuel Thibault X-Git-Tag: upstream/4.9.2~46897 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d1e7f33afc1565bc4c0e28ef52276ef264a92140;p=platform%2Fupstream%2Flinaro-gcc.git 2007-08-15 Samuel Thibault * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove 'si' and 'third' parameters. Disable calling pmi->old_sigaction.sa_sigaction. (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127507 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index fd7ddcd..22d1b50 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2007-08-15 Samuel Thibault + + * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove + 'si' and 'third' parameters. Disable calling + pmi->old_sigaction.sa_sigaction. + (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set + sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag. + 2007-08-09 Andrew Haley * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation. diff --git a/libjava/java/lang/natPosixProcess.cc b/libjava/java/lang/natPosixProcess.cc index eadc44f..fbd3f6a 100644 --- a/libjava/java/lang/natPosixProcess.cc +++ b/libjava/java/lang/natPosixProcess.cc @@ -110,7 +110,11 @@ namespace // sigwait() on SIGCHLD. The information passed is ignored as it // will be recovered by the waitpid() call. static void +#ifdef SA_SIGINFO sigchld_handler (int sig, siginfo_t *si, void *third) +#else +sigchld_handler (int sig) +#endif { if (PosixProcess$ProcessManager::nativeData != NULL) { @@ -121,9 +125,11 @@ sigchld_handler (int sig, siginfo_t *si, void *third) if (pmi->old_sigaction.sa_handler != SIG_DFL && pmi->old_sigaction.sa_handler != SIG_IGN) { +#ifdef SA_SIGINFO if ((pmi->old_sigaction.sa_flags & SA_SIGINFO) != 0) pmi->old_sigaction.sa_sigaction(sig, si, third); else +#endif (*pmi->old_sigaction.sa_handler)(sig); } } @@ -156,9 +162,15 @@ java::lang::PosixProcess$ProcessManager::init () struct sigaction sa; memset (&sa, 0, sizeof (sa)); +#ifdef SA_SIGINFO sa.sa_sigaction = sigchld_handler; // We only want signals when the things exit. sa.sa_flags = SA_NOCLDSTOP | SA_SIGINFO; +#else + sa.sa_handler = sigchld_handler; + // We only want signals when the things exit. + sa.sa_flags = SA_NOCLDSTOP; +#endif if (-1 == sigaction (SIGCHLD, &sa, &pmi->old_sigaction)) goto error;