Accepting request 998858 from Base:System
- jobserver-noinherit.patch: Disable inheritance of jobserver FDs for recursive make - jobserver-fifo.patch: Add support for jobserver using named pipes (forwarded request 998857 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/998858 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/make?expand=0&rev=47
This commit is contained in:
commit
f1d643d888
1001
jobserver-fifo.patch
Normal file
1001
jobserver-fifo.patch
Normal file
File diff suppressed because it is too large
Load Diff
43
jobserver-noinherit.patch
Normal file
43
jobserver-noinherit.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From d79fe162c009788888faaf0317253b6f0cac7092 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Buettner <kevinb@redhat.com>
|
||||
Date: Thu, 23 Apr 2020 17:05:34 -0400
|
||||
Subject: [PATCH] [SV 58232] Disable inheritance of jobserver FDs for recursive
|
||||
make
|
||||
|
||||
A parent make will invoke a sub-make with close-on-exec disabled for
|
||||
the jobserver pipe FDs. Force close-on-exec to be to be enabled in
|
||||
the sub-make so the pipe is not always passed to child jobs.
|
||||
|
||||
I have a test case which, when invoked with a suitable -j switch,
|
||||
will hang if the recipe inherits the jobserver pipe. This test case
|
||||
was inspired by a real world case in which testing GDB on Fedora
|
||||
would hang due to some poorly written test GDB cases having been
|
||||
passed the jobserver file descriptors.
|
||||
|
||||
* src/posixos.c (jobserver_parse_auth): Call fd_noinherit() for
|
||||
jobserver pipe descriptors.
|
||||
|
||||
Copyright-paperwork-exempt: yes
|
||||
---
|
||||
src/posixos.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/posixos.c b/src/posixos.c
|
||||
index 525f292c..eab175a4 100644
|
||||
--- a/src/posixos.c
|
||||
+++ b/src/posixos.c
|
||||
@@ -145,6 +145,11 @@ jobserver_parse_auth (const char *auth)
|
||||
/* When using pselect() we want the read to be non-blocking. */
|
||||
set_blocking (job_fds[0], 0);
|
||||
|
||||
+ /* By default we don't send the job pipe FDs to our children.
|
||||
+ See jobserver_pre_child() and jobserver_post_child(). */
|
||||
+ fd_noinherit (job_fds[0]);
|
||||
+ fd_noinherit (job_fds[1]);
|
||||
+
|
||||
return 1;
|
||||
}
|
||||
|
||||
--
|
||||
2.37.2
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 17 15:05:38 UTC 2022 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
- jobserver-noinherit.patch: Disable inheritance of jobserver FDs for
|
||||
recursive make
|
||||
- jobserver-fifo.patch: Add support for jobserver using named pipes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 19 13:30:15 UTC 2022 - Marcus Meissner <meissner@suse.com>
|
||||
|
||||
|
@ -29,13 +29,16 @@ Source1: https://ftp.gnu.org/gnu/make/make-%{version}.tar.gz.sig
|
||||
Source2: %{name}.keyring
|
||||
Patch1: make-testcases_timeout.diff
|
||||
Patch2: fix-57962.patch
|
||||
Patch3: jobserver-noinherit.patch
|
||||
Patch4: jobserver-fifo.patch
|
||||
Patch5: test-driver.patch
|
||||
Patch64: make-library-search-path.diff
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: pkgconfig
|
||||
Requires(post): %{install_info_prereq}
|
||||
Requires(preun): %{install_info_prereq}
|
||||
Requires(preun):%{install_info_prereq}
|
||||
Provides: gmake
|
||||
|
||||
%description
|
||||
@ -47,6 +50,8 @@ The GNU make command with extensive documentation.
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
if [ %{_lib} = lib64 ]; then
|
||||
%patch64 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user