Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
package/glibc: fix make-4.4 compatibility
Backport a patch fixing compatibility with upcoming make 4.4. Fixes: - http://autobuild.buildroot.net/results/5a3/5a3f6414d75fbc8a272258bf3bdb6f4fe7e6da34 - http://autobuild.buildroot.net/results/481/481c4617813da031beddaf00b97440071f646809 - http://autobuild.buildroot.net/results/cf1/cf152e7a95bec3b6ebd0209dd716cbec56f9d477 Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
- Loading branch information
1 parent
1db79df
commit b749d6d
Showing
1 changed file
with
117 additions
and
0 deletions.
There are no files selected for viewing
117 changes: 117 additions & 0 deletions
117
package/glibc/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001 | ||
From: Sergei Trofimovich <slyich@gmail.com> | ||
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 <psmith@gnu.org> | ||
CC: Siddhesh Poyarekar <siddhesh@gotplt.org> | ||
Signed-off-by: Sergei Trofimovich <slyich@gmail.com> | ||
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> | ||
Signed-off-by: James Hilliard <james.hilliard1@gmail.com> | ||
[james.hilliard1@gmail.com: backport from upstream commit | ||
2d7ed98add14f75041499ac189696c9bd3d757fe] | ||
--- | ||
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 := | ||
-- | ||
2.34.1 | ||
|