diff options
Diffstat (limited to 'app-shells/bash/files/bash-3.0-jobs.patch')
-rw-r--r-- | app-shells/bash/files/bash-3.0-jobs.patch | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/app-shells/bash/files/bash-3.0-jobs.patch b/app-shells/bash/files/bash-3.0-jobs.patch deleted file mode 100644 index 72c149c71cf5..000000000000 --- a/app-shells/bash/files/bash-3.0-jobs.patch +++ /dev/null @@ -1,56 +0,0 @@ -Ripped from Fedora - -* Wed Sep 8 2004 Tim Waugh <twaugh@redhat.com> 3.0-13 -- Check for EINVAL from waitpid() and avoid WCONTINUED in that case. -- Fixed jobs4 test. - -From: Tim Waugh -Subject: [patch] bash-3.0: avoid WCONTINUED if invalid -Date: Wed, 8 Sep 2004 16:52:38 +0100 -User-agent: Mutt/1.4.1i - -Hi, - -GNU libc defines WCONTINUED, but (at least on Linux 2.4.x kernels) -waitpid() returns -1 with errno set to EINVAL if WCONTINUED is -supplied in options. - -Here is a patch to retry without WCONTINUED set in that case. - -Tim. - ---- bash-3.0/tests/jobs4.sub -+++ bash-3.0/tests/jobs4.sub -@@ -18,5 +18,5 @@ - - wait - --cat & -+sleep 100 & - kill -1 %% && echo i killed it || echo could not kill it ---- bash-3.0/jobs.c -+++ bash-3.0/jobs.c -@@ -2475,6 +2475,7 @@ - PROCESS *child; - pid_t pid; - int call_set_current, last_stopped_job, job, children_exited, waitpid_flags; -+ static int wcontinued_not_supported = 0; - - call_set_current = children_exited = 0; - last_stopped_job = NO_JOB; -@@ -2488,7 +2489,15 @@ - : 0; - if (sigchld || block == 0) - waitpid_flags |= WNOHANG; -+ retry: -+ if (wcontinued_not_supported) -+ waitpid_flags &= ~WCONTINUED; - pid = WAITPID (-1, &status, waitpid_flags); -+ if (pid == -1 && errno == EINVAL) -+ { -+ wcontinued_not_supported = 1; -+ goto retry; -+ } - - /* The check for WNOHANG is to make sure we decrement sigchld only - if it was non-zero before we called waitpid. */ |