diff --git a/packages/devel/glibc/patches/glibc-Makerules-fix-MAKEFLAGS-assignment-for-make-4-4.patch b/packages/devel/glibc/patches/glibc-Makerules-fix-MAKEFLAGS-assignment-for-make-4-4.patch deleted file mode 100644 index 844a5bb6f9..0000000000 --- a/packages/devel/glibc/patches/glibc-Makerules-fix-MAKEFLAGS-assignment-for-make-4-4.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 -From: Sergei Trofimovich -Date: Tue, 13 Sep 2022 13:39:13 -0400 -Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 - [BZ# 29564] - -make-4.4 will add long flags to MAKEFLAGS variable: - - * WARNING: Backward-incompatibility! - Previously only simple (one-letter) options were added to the MAKEFLAGS - variable that was visible while parsing makefiles. Now, all options - are available in MAKEFLAGS. - -This causes locale builds to fail when long options are used: - - $ make --shuffle - ... - make -C localedata install-locales - make: invalid shuffle mode: '1662724426r' - -The change fixes it by passing eash option via whitespace and dashes. -That way option is appended to both single-word form and whitespace -separated form. - -While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering -out --long-options. Otherwise options like --shuffle flag enable silent -mode unintentionally. $(silent-make) variable consolidates the checks. - -Resolves: BZ# 29564 - -CC: Paul Smith -CC: Siddhesh Poyarekar -Signed-off-by: Sergei Trofimovich -Reviewed-by: Siddhesh Poyarekar ---- - Makeconfig | 18 +++++++++++++++++- - Makerules | 4 ++-- - elf/rtld-Rules | 2 +- - 3 files changed, 20 insertions(+), 4 deletions(-) - -diff --git a/Makeconfig b/Makeconfig -index f8164a0025..842f49eb58 100644 ---- a/Makeconfig -+++ b/Makeconfig -@@ -43,6 +43,22 @@ else - $(error objdir must be defined by the build-directory Makefile) - endif - -+# Did we request 'make -s' run? "yes" or "no". -+# Starting from make-4.4 MAKEFLAGS now contains long -+# options like '--shuffle'. To detect presence of 's' -+# we pick first word with short options. Long options -+# are guaranteed to come after whitespace. We use '-' -+# prefix to always have a word before long options -+# even if no short options were passed. -+# Typical MAKEFLAGS values to watch for: -+# "rs --shuffle=42" (silent) -+# " --shuffle" (not silent) -+ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),) -+silent-make := no -+else -+silent-make := yes -+endif -+ - # Root of the sysdeps tree. - sysdep_dir := $(..)sysdeps - export sysdep_dir := $(sysdep_dir) -@@ -917,7 +933,7 @@ endif - # umpteen zillion filenames along with it (we use `...' instead) - # but we don't want this echoing done when the user has said - # he doesn't want to see commands echoed by using -s. --ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s -+ifeq ($(silent-make),yes) # if -s - +cmdecho := echo >/dev/null - else # not -s - +cmdecho := echo -diff --git a/Makerules b/Makerules -index d1e139d03c..09c0cf8357 100644 ---- a/Makerules -+++ b/Makerules -@@ -794,7 +794,7 @@ endif - # Maximize efficiency by minimizing the number of rules. - .SUFFIXES: # Clear the suffix list. We don't use suffix rules. - # Don't define any builtin rules. --MAKEFLAGS := $(MAKEFLAGS)r -+MAKEFLAGS := $(MAKEFLAGS) -r - - # Generic rule for making directories. - %/: -@@ -811,7 +811,7 @@ MAKEFLAGS := $(MAKEFLAGS)r - .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c)) - - # Use the verbose option of ar and tar when not running silently. --ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s -+ifeq ($(silent-make),no) # if not -s - verbose := v - else # -s - verbose := -diff --git a/elf/rtld-Rules b/elf/rtld-Rules -index ca00dd1fe2..3c5e273f2b 100644 ---- a/elf/rtld-Rules -+++ b/elf/rtld-Rules -@@ -52,7 +52,7 @@ $(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\ - mv -f $@T $@ - - # Use the verbose option of ar and tar when not running silently. --ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s -+ifeq ($(silent-make),no) # if not -s - verbose := v - else # -s - verbose := 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 +