Restore stack limit in processes spawned through $(shell)
- That caused intermittent failures in targets/SECONDARY. Turns out those are caused by the test suite being non-deterministic. Add a patch for that as well.
This commit is contained in:
parent
ba10d75822
commit
7cf149fc79
35
make-3.82-func_shell-rlimit.patch
Normal file
35
make-3.82-func_shell-rlimit.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From 552207b506f4d98a6a5f73053aa6bd924758708f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Machata <pmachata@redhat.com>
|
||||||
|
Date: Thu, 22 Aug 2013 16:46:17 +0200
|
||||||
|
Subject: [PATCH] Get rid of stack size limit for processes spawned via
|
||||||
|
$(shell)
|
||||||
|
|
||||||
|
---
|
||||||
|
ChangeLog | 5 +++++
|
||||||
|
function.c | 10 +++++++++-
|
||||||
|
2 files changed, 14 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/function.c b/function.c
|
||||||
|
index 9eabd73..e121b9a 100644
|
||||||
|
--- a/function.c
|
||||||
|
+++ b/function.c
|
||||||
|
@@ -1715,7 +1715,15 @@ func_shell_base (char *o, char **argv, int trim_newlines)
|
||||||
|
if (pid < 0)
|
||||||
|
perror_with_name (error_prefix, "fork");
|
||||||
|
else if (pid == 0)
|
||||||
|
- child_execute_job (0, pipedes[1], command_argv, envp);
|
||||||
|
+ {
|
||||||
|
+#ifdef SET_STACK_SIZE
|
||||||
|
+ /* Reset limits, if necessary. */
|
||||||
|
+ if (stack_limit.rlim_cur)
|
||||||
|
+ setrlimit (RLIMIT_STACK, &stack_limit);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ child_execute_job (0, pipedes[1], command_argv, envp);
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
1.7.6.5
|
||||||
|
|
30
make-3.82-tests-SECONDARY.patch
Normal file
30
make-3.82-tests-SECONDARY.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From 3057357c0a5c2507eef2b61eef9ebfb569b30230 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Smith <psmith@gnu.org>
|
||||||
|
Date: Sat, 10 Dec 2011 17:13:14 +0000
|
||||||
|
Subject: [PATCH] Add prerequisites to ensure ordering of results.
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/scripts/targets/SECONDARY | 5 +++--
|
||||||
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/scripts/targets/SECONDARY b/tests/scripts/targets/SECONDARY
|
||||||
|
index c954ee9..26515d8 100644
|
||||||
|
--- a/tests/scripts/targets/SECONDARY
|
||||||
|
+++ b/tests/scripts/targets/SECONDARY
|
||||||
|
@@ -129,10 +129,11 @@ touch(qw(1.a 2.a));
|
||||||
|
run_make_test('
|
||||||
|
%.c : %.b ; cp $< $@
|
||||||
|
%.b : %.a ; cp $< $@
|
||||||
|
-all : 1.c 2.c', '-rR -j',
|
||||||
|
+all : 1.c 2.c
|
||||||
|
+2.a: 1.c', '-rR -j',
|
||||||
|
'cp 1.a 1.b
|
||||||
|
-cp 2.a 2.b
|
||||||
|
cp 1.b 1.c
|
||||||
|
+cp 2.a 2.b
|
||||||
|
cp 2.b 2.c
|
||||||
|
rm 1.b 2.b');
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.6.5
|
||||||
|
|
18
make.spec
18
make.spec
@ -3,7 +3,7 @@ Summary: A GNU tool which simplifies the build process for users
|
|||||||
Name: make
|
Name: make
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 3.82
|
Version: 3.82
|
||||||
Release: 18%{?dist}
|
Release: 19%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
URL: http://www.gnu.org/software/make/
|
URL: http://www.gnu.org/software/make/
|
||||||
@ -53,6 +53,14 @@ Patch18: make-3.82-empty-members.patch
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=987672
|
# https://bugzilla.redhat.com/show_bug.cgi?id=987672
|
||||||
Patch19: make-3.82-stem_glob.patch
|
Patch19: make-3.82-stem_glob.patch
|
||||||
|
|
||||||
|
# Stack limit not restored for processes spawned through $(shell)
|
||||||
|
# https://savannah.gnu.org/bugs/index.php?39851
|
||||||
|
Patch20: make-3.82-func_shell-rlimit.patch
|
||||||
|
|
||||||
|
# This to make the test targets/SECONDARY deterministic. The above
|
||||||
|
# patch causes this to occasionally fail.
|
||||||
|
Patch21: make-3.82-tests-SECONDARY.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Requires(post): /sbin/install-info
|
Requires(post): /sbin/install-info
|
||||||
Requires(preun): /sbin/install-info
|
Requires(preun): /sbin/install-info
|
||||||
@ -86,6 +94,9 @@ makefile.
|
|||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch19 -p1
|
%patch19 -p1
|
||||||
|
%patch20 -p1
|
||||||
|
%patch21 -p1
|
||||||
|
|
||||||
rm -f tests/scripts/features/parallelism.orig
|
rm -f tests/scripts/features/parallelism.orig
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -129,6 +140,11 @@ fi
|
|||||||
%{_infodir}/*.info*
|
%{_infodir}/*.info*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 22 2013 Petr Machata <pmachata@redhat.com> - 1:3.82-19
|
||||||
|
- make now restores rlimit to its original values before launching
|
||||||
|
subprocess via $(shell) (make-3.82-func_shell-rlimit.patch)
|
||||||
|
- Determinize one test (make-3.82-tests-SECONDARY.patch)
|
||||||
|
|
||||||
* Fri Jul 26 2013 Petr Machata <pmachata@redhat.com> - 1:3.82-18
|
* Fri Jul 26 2013 Petr Machata <pmachata@redhat.com> - 1:3.82-18
|
||||||
- Backport upstream patch that adds wildcard expansion to pattern
|
- Backport upstream patch that adds wildcard expansion to pattern
|
||||||
rules. (make-3.82-stem_glob.patch)
|
rules. (make-3.82-stem_glob.patch)
|
||||||
|
Loading…
Reference in New Issue
Block a user