From a744d84288f6863e0536e11460302232141f0c4a Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sat, 15 May 2021 00:13:28 +0200 Subject: sys-devel/make: drop 4.2.1-r4 Signed-off-by: David Seifert --- sys-devel/make/Manifest | 1 - .../make/files/make-4.2.1-glob-internals.patch | 67 ----- sys-devel/make/files/make-4.2.1-glob-v2.patch | 30 -- sys-devel/make/files/make-4.2.1-guile-2.2.patch | 320 --------------------- sys-devel/make/files/make-4.2.1-perl526.patch | 26 -- .../files/make-4.2.1-pselect-non-blocking.patch | 172 ----------- sys-devel/make/make-4.2.1-r4.ebuild | 59 ---- 7 files changed, 675 deletions(-) delete mode 100644 sys-devel/make/files/make-4.2.1-glob-internals.patch delete mode 100644 sys-devel/make/files/make-4.2.1-glob-v2.patch delete mode 100644 sys-devel/make/files/make-4.2.1-guile-2.2.patch delete mode 100644 sys-devel/make/files/make-4.2.1-perl526.patch delete mode 100644 sys-devel/make/files/make-4.2.1-pselect-non-blocking.patch delete mode 100644 sys-devel/make/make-4.2.1-r4.ebuild (limited to 'sys-devel') diff --git a/sys-devel/make/Manifest b/sys-devel/make/Manifest index df3d822af62d..34d9f6842b0f 100644 --- a/sys-devel/make/Manifest +++ b/sys-devel/make/Manifest @@ -1,2 +1 @@ -DIST make-4.2.1.tar.bz2 1407126 BLAKE2B fa6d43f5fd46182182a296c58dcd138a1a4568104eda760bbb3c241c023dee216789cf3128e5ac2b416cec76e1ba82d5b5e7852da12e86138a7d0865c85a42b4 SHA512 9cf00869a2f938492554f71d8cb288b5b009b3bd0489ef164f2c8f6532fc37db5c7e20af1dea288536e7c9710ee0bc6e1ddcdfc4928a8540e6e43661741825b8 DIST make-4.3.tar.gz 2317073 BLAKE2B 5a82ce1f30eb034366ac3b87d2ec6698aae17d7b1a611941cf42136b2453b34236ab55382eab0a593c43cee8b036ba4a054f966c41ba766fdbd2862942be5dff SHA512 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b diff --git a/sys-devel/make/files/make-4.2.1-glob-internals.patch b/sys-devel/make/files/make-4.2.1-glob-internals.patch deleted file mode 100644 index 9f70ae2084f0..000000000000 --- a/sys-devel/make/files/make-4.2.1-glob-internals.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Sun, 24 Sep 2017 09:12:58 -0400 -Subject: [PATCH] glob: Do not assume glibc glob internals. - -It has been proposed that glibc glob start using gl_lstat, -which the API allows it to do. GNU 'make' should not get in -the way of this. See: -https://sourceware.org/ml/libc-alpha/2017-09/msg00409.html - -* dir.c (local_lstat): New function, like local_stat. -(dir_setup_glob): Use it to initialize gl_lstat too, as the API -requires. ---- - dir.c | 29 +++++++++++++++++++++++++++-- - 1 file changed, 27 insertions(+), 2 deletions(-) - -diff --git a/dir.c b/dir.c -index adbb8a9..c343e4c 100644 ---- a/dir.c -+++ b/dir.c -@@ -1299,15 +1299,40 @@ local_stat (const char *path, struct stat *buf) - } - #endif - -+/* Similarly for lstat. */ -+#if !defined(lstat) && !defined(WINDOWS32) || defined(VMS) -+# ifndef VMS -+# ifndef HAVE_SYS_STAT_H -+int lstat (const char *path, struct stat *sbuf); -+# endif -+# else -+ /* We are done with the fake lstat. Go back to the real lstat */ -+# ifdef lstat -+# undef lstat -+# endif -+# endif -+# define local_lstat lstat -+#elif defined(WINDOWS32) -+/* Windows doesn't support lstat(). */ -+# define local_lstat local_stat -+#else -+static int -+local_lstat (const char *path, struct stat *buf) -+{ -+ int e; -+ EINTRLOOP (e, lstat (path, buf)); -+ return e; -+} -+#endif -+ - void - dir_setup_glob (glob_t *gl) - { - gl->gl_opendir = open_dirstream; - gl->gl_readdir = read_dirstream; - gl->gl_closedir = free; -+ gl->gl_lstat = local_lstat; - gl->gl_stat = local_stat; -- /* We don't bother setting gl_lstat, since glob never calls it. -- The slot is only there for compatibility with 4.4 BSD. */ - } - - void --- -2.16.1 - diff --git a/sys-devel/make/files/make-4.2.1-glob-v2.patch b/sys-devel/make/files/make-4.2.1-glob-v2.patch deleted file mode 100644 index e55a7790a3f6..000000000000 --- a/sys-devel/make/files/make-4.2.1-glob-v2.patch +++ /dev/null @@ -1,30 +0,0 @@ -http://git.savannah.gnu.org/cgit/make.git/commit/?id=48c8a116a914a325a0497721f5d8b58d5bba34d4 - ---- make-4.2.1/configure 2016-06-11 01:03:21.000000000 +0200 -+++ make-4.2.1/configure 2016-06-11 01:03:21.000000000 +0200 -@@ -11481,10 +11481,9 @@ - #include - #include - --#define GLOB_INTERFACE_VERSION 1 - #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 - # include --# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION -+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 - gnu glob - # endif - #endif ---- make-4.2.1/configure.ac 2016-06-06 14:27:31.000000000 +0200 -+++ make-4.2.1/configure.ac 2016-06-06 14:27:31.000000000 +0200 -@@ -399,10 +399,9 @@ - #include - #include - --#define GLOB_INTERFACE_VERSION 1 - #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 - # include --# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION -+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2 - gnu glob - # endif - #endif], diff --git a/sys-devel/make/files/make-4.2.1-guile-2.2.patch b/sys-devel/make/files/make-4.2.1-guile-2.2.patch deleted file mode 100644 index b7f9eb50b786..000000000000 --- a/sys-devel/make/files/make-4.2.1-guile-2.2.patch +++ /dev/null @@ -1,320 +0,0 @@ -https://git.savannah.gnu.org/cgit/make.git/commit/?id=fbf71ec25a5986d9003ac16ee9e23675feac9053 -https://bugs.gentoo.org/650608 - ---- make-4.2.1/configure 2016-06-11 01:03:21.000000000 +0200 -+++ make-4.2.1/configure 2016-06-11 01:03:21.000000000 +0200 -@@ -9694,6 +9694,15 @@ - - # See if the user wants to add (or not) GNU Guile support - -+# Check whether --with-guile was given. -+if test "${with_guile+set}" = set; then : -+ withval=$with_guile; -+fi -+ -+ -+# Annoyingly, each version of Guile comes with it's own PC file so we have to -+# specify them as individual packages. Ugh. -+ - - - -@@ -9814,75 +9823,25 @@ - fi - fi - --# Check whether --with-guile was given. --if test "${with_guile+set}" = set; then : -- withval=$with_guile; --fi -- -- --# For some strange reason, at least on Ubuntu, each version of Guile --# comes with it's own PC file so we have to specify them as individual --# packages. Ugh. - if test "x$with_guile" != xno; then : -- --pkg_failed=no --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUILE" >&5 --$as_echo_n "checking for GUILE... " >&6; } -- --if test -n "$GUILE_CFLAGS"; then -- pkg_cv_GUILE_CFLAGS="$GUILE_CFLAGS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-2.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "guile-2.0") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-2.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi --if test -n "$GUILE_LIBS"; then -- pkg_cv_GUILE_LIBS="$GUILE_LIBS" -- elif test -n "$PKG_CONFIG"; then -+ guile_versions="2.2 2.0 1.8" -+ guile_version=no -+ have_guile=no -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU Guile" >&5 -+$as_echo_n "checking for GNU Guile... " >&6; } -+ for v in $guile_versions; do - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-2.0\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "guile-2.0") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-\$v\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "guile-$v") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-2.0" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes -+ guile_version=$v; have_guile=yes; break - fi -- else -- pkg_failed=untried --fi -- -- -- --if test $pkg_failed = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes --else -- _pkg_short_errors_supported=no --fi -- if test $_pkg_short_errors_supported = yes; then -- GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-2.0" 2>&1` -- else -- GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-2.0" 2>&1` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$GUILE_PKG_ERRORS" >&5 -- -+ done -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $guile_version" >&5 -+$as_echo "$guile_version" >&6; } -+ if test "$have_guile" = yes; then - - pkg_failed=no - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUILE" >&5 -@@ -9892,12 +9851,12 @@ - pkg_cv_GUILE_CFLAGS="$GUILE_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-\$guile_version\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "guile-$guile_version") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-1.8" 2>/dev/null` -+ pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-$guile_version" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -9909,12 +9868,12 @@ - pkg_cv_GUILE_LIBS="$GUILE_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5 -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-\$guile_version\""; } >&5 -+ ($PKG_CONFIG --exists --print-errors "guile-$guile_version") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -- pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-1.8" 2>/dev/null` -+ pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-$guile_version" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes - else - pkg_failed=yes -@@ -9935,113 +9894,50 @@ - _pkg_short_errors_supported=no - fi - if test $_pkg_short_errors_supported = yes; then -- GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-1.8" 2>&1` -+ GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-$guile_version" 2>&1` - else -- GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-1.8" 2>&1` -+ GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-$guile_version" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GUILE_PKG_ERRORS" >&5 - -- have_guile=no --elif test $pkg_failed = untried; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- have_guile=no --else -- GUILE_CFLAGS=$pkg_cv_GUILE_CFLAGS -- GUILE_LIBS=$pkg_cv_GUILE_LIBS -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- have_guile=yes --fi --elif test $pkg_failed = untried; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -+ as_fn_error $? "Package requirements (guile-$guile_version) were not met: - --pkg_failed=no --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUILE" >&5 --$as_echo_n "checking for GUILE... " >&6; } -+$GUILE_PKG_ERRORS - --if test -n "$GUILE_CFLAGS"; then -- pkg_cv_GUILE_CFLAGS="$GUILE_CFLAGS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-1.8" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi --if test -n "$GUILE_LIBS"; then -- pkg_cv_GUILE_LIBS="$GUILE_LIBS" -- elif test -n "$PKG_CONFIG"; then -- if test -n "$PKG_CONFIG" && \ -- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5 -- ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5 -- ac_status=$? -- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -- test $ac_status = 0; }; then -- pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-1.8" 2>/dev/null` -- test "x$?" != "x0" && pkg_failed=yes --else -- pkg_failed=yes --fi -- else -- pkg_failed=untried --fi -- -- -- --if test $pkg_failed = yes; then -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 --$as_echo "no" >&6; } -- --if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then -- _pkg_short_errors_supported=yes --else -- _pkg_short_errors_supported=no --fi -- if test $_pkg_short_errors_supported = yes; then -- GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-1.8" 2>&1` -- else -- GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-1.8" 2>&1` -- fi -- # Put the nasty error message in config.log where it belongs -- echo "$GUILE_PKG_ERRORS" >&5 -+Consider adjusting the PKG_CONFIG_PATH environment variable if you -+installed software in a non-standard prefix. - -- have_guile=no -+Alternatively, you may set the environment variables GUILE_CFLAGS -+and GUILE_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details." "$LINENO" 5 - elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } -- have_guile=no --else -- GUILE_CFLAGS=$pkg_cv_GUILE_CFLAGS -- GUILE_LIBS=$pkg_cv_GUILE_LIBS -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; } -- have_guile=yes --fi -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -+is in your PATH or set the PKG_CONFIG environment variable to the full -+path to pkg-config. -+ -+Alternatively, you may set the environment variables GUILE_CFLAGS -+and GUILE_LIBS to avoid the need to call pkg-config. -+See the pkg-config man page for more details. -+ -+To get pkg-config, see . -+See \`config.log' for more details" "$LINENO" 5; } - else - GUILE_CFLAGS=$pkg_cv_GUILE_CFLAGS - GUILE_LIBS=$pkg_cv_GUILE_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - $as_echo "yes" >&6; } -- have_guile=yes --fi - - fi - --if test "$have_guile" = yes; then : -- - $as_echo "#define HAVE_GUILE 1" >>confdefs.h - -+ fi -+ - fi - - if test "$have_guile" = yes; then ---- make-4.2.1/configure.ac 2016-06-06 14:27:31.000000000 +0200 -+++ make-4.2.1/configure.ac 2016-06-06 14:27:31.000000000 +0200 -@@ -160,22 +160,28 @@ - AC_FUNC_CLOSEDIR_VOID - - # See if the user wants to add (or not) GNU Guile support --PKG_PROG_PKG_CONFIG - AC_ARG_WITH([guile], [AS_HELP_STRING([--with-guile], - [Support GNU Guile for embedded scripting])]) - --# For some strange reason, at least on Ubuntu, each version of Guile --# comes with it's own PC file so we have to specify them as individual --# packages. Ugh. -+# Annoyingly, each version of Guile comes with it's own PC file so we have to -+# specify them as individual packages. Ugh. -+PKG_PROG_PKG_CONFIG -+ - AS_IF([test "x$with_guile" != xno], --[ PKG_CHECK_MODULES([GUILE], [guile-2.0], [have_guile=yes], -- [PKG_CHECK_MODULES([GUILE], [guile-1.8], [have_guile=yes], -- [have_guile=no])]) -+[ guile_versions="2.2 2.0 1.8" -+ guile_version=no -+ have_guile=no -+ AC_MSG_CHECKING([for GNU Guile]) -+ for v in $guile_versions; do -+ PKG_CHECK_EXISTS([guile-$v], [guile_version=$v; have_guile=yes; break], []) -+ done -+ AC_MSG_RESULT([$guile_version]) -+ if test "$have_guile" = yes; then -+ PKG_CHECK_MODULES(GUILE, [guile-$guile_version]) -+ AC_DEFINE([HAVE_GUILE], [1], [Embed GNU Guile support]) -+ fi - ]) - --AS_IF([test "$have_guile" = yes], -- [AC_DEFINE([HAVE_GUILE], [1], [Embed GNU Guile support])]) -- - AM_CONDITIONAL([HAVE_GUILE], [test "$have_guile" = yes]) - - AC_FUNC_GETLOADAVG diff --git a/sys-devel/make/files/make-4.2.1-perl526.patch b/sys-devel/make/files/make-4.2.1-perl526.patch deleted file mode 100644 index a935d1314ebb..000000000000 --- a/sys-devel/make/files/make-4.2.1-perl526.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d9d4e06084a4c7da480bd49a3487aadf6ba77b54 Mon Sep 17 00:00:00 2001 -From: Enrique Olaizola -Date: Sat, 27 May 2017 14:24:33 -0400 -Subject: [PATCH] * tests/run_make_tests.pl: [SV 50902] Find Perl modules - ---- - tests/run_make_tests.pl | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl -index a74417a..a844094 100644 ---- a/tests/run_make_tests.pl -+++ b/tests/run_make_tests.pl -@@ -64,6 +64,9 @@ if ($^O eq 'VMS') - $CMD_rmfile = 'delete_file -no_ask'; - } - -+use FindBin; -+use lib "$FindBin::Bin"; -+ - require "test_driver.pl"; - require "config-flags.pm"; - --- -2.16.1 - diff --git a/sys-devel/make/files/make-4.2.1-pselect-non-blocking.patch b/sys-devel/make/files/make-4.2.1-pselect-non-blocking.patch deleted file mode 100644 index 61e19516f3c3..000000000000 --- a/sys-devel/make/files/make-4.2.1-pselect-non-blocking.patch +++ /dev/null @@ -1,172 +0,0 @@ -https://bugs.gentoo.org/664632 - -From b552b05251980f693c729e251f93f5225b400714 Mon Sep 17 00:00:00 2001 -From: Paul Smith -Date: Sat, 3 Jun 2017 16:20:51 -0400 -Subject: [SV 51159] Use a non-blocking read with pselect to avoid hangs. - -* posixos.c (set_blocking): Set blocking on a file descriptor. -(jobserver_setup): Set non-blocking on the jobserver read side. -(jobserver_parse_auth): Ditto. -(jobserver_acquire_all): Set blocking to avoid a busy-wait loop. -(jobserver_acquire): If the non-blocking read() returns without -taking a token then try again. ---- - posixos.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++----------------- - 1 file changed, 71 insertions(+), 26 deletions(-) - -diff --git a/posixos.c b/posixos.c -index e642d7f..dbafa51 100644 ---- a/posixos.c -+++ b/posixos.c -@@ -62,6 +62,24 @@ make_job_rfd (void) - #endif - } - -+static void -+set_blocking (int fd, int blocking) -+{ -+ // If we're not using pselect() don't change the blocking -+#ifdef HAVE_PSELECT -+ int flags; -+ EINTRLOOP (flags, fcntl (fd, F_GETFL)); -+ if (flags >= 0) -+ { -+ int r; -+ flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK); -+ EINTRLOOP (r, fcntl (fd, F_SETFL, flags)); -+ if (r < 0) -+ pfatal_with_name ("fcntl(O_NONBLOCK)"); -+ } -+#endif -+} -+ - unsigned int - jobserver_setup (int slots) - { -@@ -86,6 +104,9 @@ jobserver_setup (int slots) - pfatal_with_name (_("init jobserver pipe")); - } - -+ /* When using pselect() we want the read to be non-blocking. */ -+ set_blocking (job_fds[0], 0); -+ - return 1; - } - -@@ -121,6 +142,9 @@ jobserver_parse_auth (const char *auth) - return 0; - } - -+ /* When using pselect() we want the read to be non-blocking. */ -+ set_blocking (job_fds[0], 0); -+ - return 1; - } - -@@ -169,7 +193,10 @@ jobserver_acquire_all (void) - { - unsigned int tokens = 0; - -- /* Close the write side, so the read() won't hang. */ -+ /* Use blocking reads to wait for all outstanding jobs. */ -+ set_blocking (job_fds[0], 1); -+ -+ /* Close the write side, so the read() won't hang forever. */ - close (job_fds[1]); - job_fds[1] = -1; - -@@ -236,18 +263,12 @@ jobserver_pre_acquire (void) - unsigned int - jobserver_acquire (int timeout) - { -- sigset_t empty; -- fd_set readfds; - struct timespec spec; - struct timespec *specp = NULL; -- int r; -- char intake; -+ sigset_t empty; - - sigemptyset (&empty); - -- FD_ZERO (&readfds); -- FD_SET (job_fds[0], &readfds); -- - if (timeout) - { - /* Alarm after one second (is this too granular?) */ -@@ -256,28 +277,52 @@ jobserver_acquire (int timeout) - specp = &spec; - } - -- r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty); -- -- if (r == -1) -+ while (1) - { -- /* Better be SIGCHLD. */ -- if (errno != EINTR) -- pfatal_with_name (_("pselect jobs pipe")); -- return 0; -- } -+ fd_set readfds; -+ int r; -+ char intake; - -- if (r == 0) -- /* Timeout. */ -- return 0; -+ FD_ZERO (&readfds); -+ FD_SET (job_fds[0], &readfds); - -- /* The read FD is ready: read it! */ -- EINTRLOOP (r, read (job_fds[0], &intake, 1)); -- if (r < 0) -- pfatal_with_name (_("read jobs pipe")); -+ r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty); -+ if (r < 0) -+ switch (errno) -+ { -+ case EINTR: -+ /* SIGCHLD will show up as an EINTR. */ -+ return 0; -+ -+ case EBADF: -+ /* Someone closed the jobs pipe. -+ That shouldn't happen but if it does we're done. */ -+ O (fatal, NILF, _("job server shut down")); - -- /* What does it mean if read() returns 0? It shouldn't happen because only -- the master make can reap all the tokens and close the write side...?? */ -- return r > 0; -+ default: -+ pfatal_with_name (_("pselect jobs pipe")); -+ } -+ -+ if (r == 0) -+ /* Timeout. */ -+ return 0; -+ -+ /* The read FD is ready: read it! This is non-blocking. */ -+ EINTRLOOP (r, read (job_fds[0], &intake, 1)); -+ -+ if (r < 0) -+ { -+ /* Someone sniped our token! Try again. */ -+ if (errno == EAGAIN) -+ continue; -+ -+ pfatal_with_name (_("read jobs pipe")); -+ } -+ -+ /* read() should never return 0: only the master make can reap all the -+ tokens and close the write side...?? */ -+ return r > 0; -+ } - } - - #else --- -cgit v1.0-41-gc330 - diff --git a/sys-devel/make/make-4.2.1-r4.ebuild b/sys-devel/make/make-4.2.1-r4.ebuild deleted file mode 100644 index d5fead12467a..000000000000 --- a/sys-devel/make/make-4.2.1-r4.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit flag-o-matic - -DESCRIPTION="Standard tool to compile source trees" -HOMEPAGE="https://www.gnu.org/software/make/make.html" -SRC_URI="mirror://gnu//make/${P}.tar.bz2" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="guile nls static" - -CDEPEND="guile? ( >=dev-scheme/guile-1.8:= )" -DEPEND="${CDEPEND} - nls? ( sys-devel/gettext )" -RDEPEND="${CDEPEND} - nls? ( virtual/libintl )" - -PATCHES=( - "${FILESDIR}"/${PN}-3.82-darwin-library_search-dylib.patch - "${FILESDIR}"/${PN}-4.2-default-cxx.patch - "${FILESDIR}"/${PN}-4.2.1-perl526.patch - "${FILESDIR}"/${PN}-4.2.1-glob-internals.patch - "${FILESDIR}"/${PN}-4.2.1-pselect-non-blocking.patch -) - -src_prepare() { - default - # These patches require special handling as they modify configure.ac - # which in turn triggers maintainer-mode when being applied the - # usual way. - eapply -Z "${FILESDIR}"/${PN}-4.2.1-glob-v2.patch \ - "${FILESDIR}"/${P}-guile-2.2.patch -} - -src_configure() { - use static && append-ldflags -static - local myeconfargs=( - --program-prefix=g - $(use_with guile) - $(use_enable nls) - ) - econf "${myeconfargs[@]}" -} - -src_install() { - emake DESTDIR="${D}" install - dodoc AUTHORS NEWS README* - if [[ ${USERLAND} == "GNU" ]] ; then - # we install everywhere as 'gmake' but on GNU systems, - # symlink 'make' to 'gmake' - dosym gmake /usr/bin/make - dosym gmake.1 /usr/share/man/man1/make.1 - fi -} -- cgit v1.2.3-65-gdbad