- 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:
parent
6c29d04f43
commit
d9ed328203
@ -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)
|
1001
jobserver-fifo.patch
1001
jobserver-fifo.patch
File diff suppressed because it is too large
Load Diff
@ -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
3
make-4.3.90.tar.gz
Normal 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
BIN
make-4.3.90.tar.gz.sig
Normal file
Binary file not shown.
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19
|
||||
size 2317073
|
Binary file not shown.
100
make.changes
100
make.changes
@ -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>
|
||||
|
||||
|
10
make.spec
10
make.spec
@ -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
|
||||
|
@ -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+"$@"}
|
Loading…
Reference in New Issue
Block a user