diff --git a/packages/devel/make/package.mk b/packages/devel/make/package.mk index daa6b4ff1c..18cee105fc 100644 --- a/packages/devel/make/package.mk +++ b/packages/devel/make/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="make" -PKG_VERSION="4.4" -PKG_SHA256="581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18" +PKG_VERSION="4.3" +PKG_SHA256="e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19" PKG_LICENSE="GPLv3" PKG_SITE="https://www.gnu.org/software/make/" PKG_URL="http://ftpmirror.gnu.org/make/${PKG_NAME}-${PKG_VERSION}.tar.gz" diff --git a/packages/devel/make/patches/make-01-disable-inheritance-of-fds.patch b/packages/devel/make/patches/make-01-disable-inheritance-of-fds.patch new file mode 100644 index 0000000000..db2c7f8cd0 --- /dev/null +++ b/packages/devel/make/patches/make-01-disable-inheritance-of-fds.patch @@ -0,0 +1,42 @@ +From d79fe162c009788888faaf0317253b6f0cac7092 Mon Sep 17 00:00:00 2001 +From: Kevin Buettner +Date: Thu, 23 Apr 2020 17:05:34 -0400 +Subject: [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 525f292..eab175a 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; + } + +-- +cgit v1.2.1 +