- Update to make 4.3.90

* WARNING: Backward-incompatibility!
    Previously if --no-print-directory was seen anywhere in the environment or
    command line it would take precedence over any --print-directory.  Now, the
    last setting of directory printing options seen will be used, so a command
    line such as "--no-print-directory -w" _will_ show directory entry/exits.
  * WARNING: Backward-incompatibility!
    Previously the order in which makefiles were remade was not explicitly
    stated, but it was (roughly) the inverse of the order in which they were
    processed by make.  In this release, the order in which makefiles are
    rebuilt is the same order in which make processed them, and this is defined
    to be true in the GNU make manual.
  * 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.  If you want to check MAKEFLAGS for a one-letter
    option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return
    the set of one-letter options which can be examined via findstring, etc.
  * WARNING: Backward-incompatibility!
    Previously makefile variables marked as export were not exported to commands
    started by the $(shell ...) function.  Now, all exported variables are
    exported to $(shell ...).  If this leads to recursion during expansion, then
    for backward-compatibility the value from the original environment is used.
    To detect this change search for 'shell-export' in the .FEATURES variable.
  * WARNING: New build requirement
    GNU make utilizes facilities from GNU Gnulib: Gnulib requires certain C99
    features in the C compiler and so these features are required by GNU make:
    https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html
    The configure script should verify the compiler has these features.
  * New feature: The .WAIT special target

OBS-URL: https://build.opensuse.org/package/show/Base:System/make?expand=0&rev=75
This commit is contained in:
Andreas Schwab 2022-09-21 08:04:46 +00:00 committed by Git OBS Bridge
parent 6c29d04f43
commit d9ed328203
10 changed files with 104 additions and 1109 deletions

View File

@ -1,30 +0,0 @@
diff --git a/lib/findprog-in.c b/lib/findprog-in.c
index c254f2f..d89ec00 100644
--- a/lib/findprog-in.c
+++ b/lib/findprog-in.c
@@ -26,6 +26,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/stat.h>
#include "filename.h"
#include "concat-filename.h"
@@ -190,6 +191,7 @@ find_in_given_path (const char *progname, const char *path,
dir = ".";
/* Try all platform-dependent suffixes. */
+ struct stat st;
for (i = 0; i < sizeof (suffixes) / sizeof (suffixes[0]); i++)
{
const char *suffix = suffixes[i];
@@ -208,7 +210,8 @@ find_in_given_path (const char *progname, const char *path,
use it. On other systems, let's hope that this program
is not installed setuid or setgid, so that it is ok to
call access() despite its design flaw. */
- if (eaccess (progpathname, X_OK) == 0)
+ if (eaccess (progpathname, X_OK) == 0 &&
+ stat(progpathname, &st) == 0 && S_ISREG(st.st_mode))
{
/* Found! */
if (strcmp (progpathname, progname) == 0)

File diff suppressed because it is too large Load Diff

View File

@ -1,43 +0,0 @@
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

3
make-4.3.90.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b85021da86c3ceaa104151ac1f4af3c811f5f2f61cd383f0de739aa5b2f98c7d
size 2235311

BIN
make-4.3.90.tar.gz.sig Normal file

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19
size 2317073

Binary file not shown.

View File

@ -1,3 +1,103 @@
-------------------------------------------------------------------
Wed Sep 21 07:54:19 UTC 2022 - Andreas Schwab <schwab@suse.de>
- Update to make 4.3.90
* WARNING: Backward-incompatibility!
Previously if --no-print-directory was seen anywhere in the environment or
command line it would take precedence over any --print-directory. Now, the
last setting of directory printing options seen will be used, so a command
line such as "--no-print-directory -w" _will_ show directory entry/exits.
* WARNING: Backward-incompatibility!
Previously the order in which makefiles were remade was not explicitly
stated, but it was (roughly) the inverse of the order in which they were
processed by make. In this release, the order in which makefiles are
rebuilt is the same order in which make processed them, and this is defined
to be true in the GNU make manual.
* 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. If you want to check MAKEFLAGS for a one-letter
option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return
the set of one-letter options which can be examined via findstring, etc.
* WARNING: Backward-incompatibility!
Previously makefile variables marked as export were not exported to commands
started by the $(shell ...) function. Now, all exported variables are
exported to $(shell ...). If this leads to recursion during expansion, then
for backward-compatibility the value from the original environment is used.
To detect this change search for 'shell-export' in the .FEATURES variable.
* WARNING: New build requirement
GNU make utilizes facilities from GNU Gnulib: Gnulib requires certain C99
features in the C compiler and so these features are required by GNU make:
https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html
The configure script should verify the compiler has these features.
* New feature: The .WAIT special target
If the .WAIT target appears between two prerequisites of a target, then
GNU make will wait for all of the targets to the left of .WAIT in the list
to complete before starting any of the targets to the right of .WAIT.
* New feature: .NOTPARALLEL accepts prerequisites
If the .NOTPARALLEL special target has prerequisites then all prerequisites
of those targets will be run serially (as if .WAIT was specified between
each prerequisite).
* New feature: The .NOTINTERMEDIATE special target
.NOTINTERMEDIATE Disables intermediate behavior for specific files, for all
files built using a pattern, or for the entire makefile.
* New feature: The $(let ...) function
This function allows user-defined functions to define a set of local
variables: values can be assigned to these variables from within the
user-defined function and they will not impact global variable assignments.
* New feature: The $(intcmp ...) function
This function allows conditional evaluation controlled by a numerical
comparison.
* New feature: Improved support for -l / --load-average
On systems that provide /proc/loadavg (Linux), GNU make will use it to
determine the number of runnable jobs and use this as the current load,
avoiding the need for heuristics.
* New feature: The --shuffle command line option
This option reorders goals and prerequisites to simulate non-determinism
that may be seen using parallel build. Shuffle mode allows a form of "fuzz
testing" of parallel builds to verify that all prerequisites are correctly
described in the makefile.
* New feature: The --jobserver-style command line option and named pipes
A new jobserver method is used on systems where mkfifo(3) is supported.
* New feature: The MAKE_TMPDIR environment variable
If you prefer that GNU make place temporary files in a different directory
than the standard TMPDIR (or TMP or TEMP on Windows), set the MAKE_TMPDIR
environment variable before starting make (this value CANNOT be set inside
the makefile, since make needs to find its temporary directory before the
makefiles are parsed).
* GNU make has sometimes chosen unexpected, and sub-optimal, chains of
implicit rules due to the definition of "ought to exist" in the implicit
rule search algorithm, which considered any prerequisite mentioned in the
makefile as "ought to exist". This algorithm has been modified to prefer
prerequisites mentioned explicitly in the target being built and only if
that results in no matching rule, will GNU make consider prerequisites
mentioned in other targets as "ought to exist".
* GNU make was performing secondary expansion of all targets, even targets
which didn't need to be considered during the build. In this release
only targets which are considered will be secondarily expanded.
* If the MAKEFLAGS variable is modified in a makefile, it will be re-parsed
immediately rather than after all makefiles have been read.
* The -I option accepts an argument "-" (e.g., "-I-") which means "reset the
list of search directories to empty".
* New debug option "print" will show the recipe to be run, even when silent
mode is set, and new debug option "why" will show why a target is rebuilt
(which prerequisites caused the target to be considered out of date).
* The existing --trace option is made equivalent to --debug=print,why
* Target-specific variables can now be marked "unexport".
* Exporting / unexporting target-specific variables is handled correctly, so
that the attribute of the most specific variable setting is used.
* Special targets like .POSIX are detected upon definition, ensuring that any
change in behavior takes effect immediately, before the next line is parsed.
* When the jobserver is enabled and GNU make decides it is invoking a non-make
sub-process and closes the jobserver pipes, it will now add a new option to
the MAKEFLAGS environment variable that disables the jobserver.
* A long-standing issue with the directory cache has been resolved: changes
made as a side-effect of some other target's recipe are now noticed as
expected.
- jobserver-noinherit.patch, jobserver-fifo.patch: Removed
- test-driver.patch: Removed.
- fix-57962.patch: Removed.
-------------------------------------------------------------------
Wed Aug 17 15:05:38 UTC 2022 - Andreas Schwab <schwab@suse.de>

View File

@ -17,7 +17,7 @@
Name: make
Version: 4.3
Version: 4.3.90
Release: 0
Summary: GNU make
License: GPL-2.0-or-later
@ -28,10 +28,6 @@ Source1: https://ftp.gnu.org/gnu/make/make-%{version}.tar.gz.sig
# keyring downloaded from https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=make&download=1
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
@ -49,10 +45,6 @@ The GNU make command with extensive documentation.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
if [ %{_lib} = lib64 ]; then
%patch64 -p1
fi

View File

@ -1,23 +0,0 @@
Index: make-4.3/Makefile.am
===================================================================
--- make-4.3.orig/Makefile.am
+++ make-4.3/Makefile.am
@@ -161,8 +161,8 @@ check-regression: tests/config-flags.pm
rm -f tests/$$f; ln -s ../srctests/$$f tests; \
done; fi ;; \
esac; \
- echo "cd tests && $(PERL) $(PERLFLAGS) ./run_make_tests.pl -srcdir $(abs_top_srcdir) -make ../make$(EXEEXT) $(MAKETESTFLAGS)"; \
- cd tests && $(PERL) $(PERLFLAGS) ./run_make_tests.pl -srcdir '$(abs_top_srcdir)' -make '../make$(EXEEXT)' $(MAKETESTFLAGS); \
+ echo "cd tests && $(PERL) $(PERLFLAGS) -I. ./run_make_tests.pl -srcdir $(abs_top_srcdir) -make ../make$(EXEEXT) $(MAKETESTFLAGS)"; \
+ cd tests && $(PERL) $(PERLFLAGS) -I. ./run_make_tests.pl -srcdir '$(abs_top_srcdir)' -make '../make$(EXEEXT)' $(MAKETESTFLAGS); \
else \
echo "Can't find a working Perl ($(PERL)); the test suite requires Perl."; \
fi; \
Index: make-4.3/tests/run_make_tests
===================================================================
--- make-4.3.orig/tests/run_make_tests
+++ make-4.3/tests/run_make_tests
@@ -1,2 +1,2 @@
#!/bin/sh
-exec perl $0.pl ${1+"$@"}
+exec perl -I ${0%/*} $0.pl ${1+"$@"}