pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/devel/gmake gmake: update to 4.3nb1.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a57ac79679a8
branches:  trunk
changeset: 451853:a57ac79679a8
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Sun May 02 19:03:52 2021 +0000

description:
gmake: update to 4.3nb1.

Version 4.3 (19 Jan 2020)

A complete list of bugs fixed in this version is available here:

https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=108&set=custom

* WARNING: Backward-incompatibility!
  Number signs (#) appearing inside a macro reference or function invocation
  no longer introduce comments and should not be escaped with backslashes:
  thus a call such as:
    foo := $(shell echo '#')
  is legal.  Previously the number sign needed to be escaped, for example:
    foo := $(shell echo '\#')
  Now this latter will resolve to "\#".  If you want to write makefiles
  portable to both versions, assign the number sign to a variable:
    H := \#
    foo := $(shell echo '$H')
  This was claimed to be fixed in 3.81, but wasn't, for some reason.
  To detect this change search for 'nocomment' in the .FEATURES variable.

* WARNING: Backward-incompatibility!
  Previously appending using '+=' to an empty variable would result in a value
  starting with a space.  Now the initial space is only added if the variable
  already contains some value.  Similarly, appending an empty string does not
  add a trailing space.

* NOTE: Deprecated behavior.
  Contrary to the documentation, suffix rules with prerequisites are being
  treated BOTH as simple targets AND as pattern rules.  Further, the
  prerequisites are ignored by the pattern rules.  POSIX specifies that in
  order to be a suffix rule there can be no prerequisites defined.  In this
  release if POSIX mode is enabled then rules with prerequisites cannot be
  suffix rules.  If POSIX mode is not enabled then the previous behavior is
  preserved (a pattern rule with no extra prerequisites is created) AND a
  warning about this behavior is generated:
    warning: ignoring prerequisites on suffix rule definition
  The POSIX behavior will be adopted as the only behavior in a future release
  of GNU make so please resolve any warnings.

* New feature: Grouped explicit targets
  Pattern rules have always had the ability to generate multiple targets with
  a single invocation of the recipe.  It's now possible to declare that an
  explicit rule generates multiple targets with a single invocation.  To use
  this, replace the ":" token with "&:" in the rule.  To detect this feature
  search for 'grouped-target' in the .FEATURES special variable.
  Implementation contributed by Kaz Kylheku <kaz%kylheku.com@localhost>

* New feature: .EXTRA_PREREQS variable
  Words in this variable are considered prerequisites of targets but they are
  not added to any of the automatic variable values when expanding the
  recipe.  This variable can either be global (applies to all targets) or
  a target-specific variable.  To detect this feature search for 'extra-prereqs'
  in the .FEATURES special variable.
  Implementation contributed by Christof Warlich <cwarlich%gmx.de@localhost>

* Makefiles can now specify the '-j' option in their MAKEFLAGS variable and
  this will cause make to enable that parallelism mode.

* GNU make will now use posix_spawn() on systems where it is available.
  If you prefer to use fork/exec even on systems where posix_spawn() is
  present, you can use the --disable-posix-spawn option to configure.
  Implementation contributed by Aron Barath <baratharon%caesar.elte.hu@localhost>

* Error messages printed when invoking non-existent commands have been cleaned
  up and made consistent.

* The previous limit of 63 jobs under -jN on MS-Windows is now
  increased to 4095.  That limit includes the subprocess started by
  the $(shell) function.

* A new option --no-silent has been added, that cancels the effect of the
  -s/--silent/--quiet flag.

* A new option -E has been added as a short alias for --eval.

* All wildcard expansion within GNU make, including $(wildcard ...), will sort
  the results.  See https://savannah.gnu.org/bugs/index.php?52076

* Interoperate with newer GNU libc and musl C runtime libraries.

* Performance improvements provided by Paolo Bonzini <pbonzini%redhat.com@localhost>

GNU make Developer News

* Import the GNU standard bootstrap script to replace the hand-rolled
  "make update" method for building code from a GNU make Git repository.

* Rework the source distribution to move source files into the src/*
  subdirectory.  This aligns with modern best practices in GNU.

* Replace local portability code with Gnulib content.  Unfortunately due to a
  problem with Gnulib support for getloadavg, this forces a requirement on
  Automake 1.16 or above in order to build from Git.  See README.git.

diffstat:

 devel/gmake/Makefile                   |   20 ++--
 devel/gmake/PLIST                      |    6 +-
 devel/gmake/distinfo                   |   17 +--
 devel/gmake/patches/patch-configure    |   20 ----
 devel/gmake/patches/patch-configure.ac |   20 ----
 devel/gmake/patches/patch-dir.c        |   51 ----------
 devel/gmake/patches/patch-makeint.h    |   17 ---
 devel/gmake/patches/patch-posixos.c    |  162 ---------------------------------
 devel/gmake/patches/patch-src_hash.c   |    8 +-
 9 files changed, 25 insertions(+), 296 deletions(-)

diffs (truncated from 409 to 300 lines):

diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/Makefile
--- a/devel/gmake/Makefile      Sun May 02 18:51:21 2021 +0000
+++ b/devel/gmake/Makefile      Sun May 02 19:03:52 2021 +0000
@@ -1,15 +1,10 @@
-# $NetBSD: Makefile,v 1.113 2020/09/12 05:58:40 rillig Exp $
+# $NetBSD: Makefile,v 1.114 2021/05/02 19:03:52 wiz Exp $
 
-# Update to 4.3 is on hold because of failure to build firefox,
-# openjdk and perhaps others.  Upgrading requires a proposal on
-# tech-pkg and consensus that it is safe.
-# See https://lists.gnu.org/archive/html/info-gnu/2020-01/msg00004.html
-DISTNAME=      make-4.2.1
+DISTNAME=      make-4.3
 PKGNAME=       g${DISTNAME}
 PKGREVISION=   1
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_GNU:=make/}
-EXTRACT_SUFX=  .tar.bz2
 
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
 HOMEPAGE=      https://www.gnu.org/software/make/make.html
@@ -22,10 +17,8 @@
 TEXINFO_REQD+=         4.0
 INFO_FILES=            yes
 
-# NOTE:  the 'test' target requires perl, but since gmake does
-# not otherwise require it, perl is not listed as an explicit
-# dependency
 TEST_TARGET=           check
+USE_TOOLS+=            perl:test
 
 CONFIGURE_ARGS+=       --program-prefix=g
 
@@ -36,6 +29,13 @@
 # XXX: based on possible /dev/kmem permissions.
 CONFIGURE_ARGS+=       ac_cv_func_getloadavg_setgid=no
 
+.include "../../mk/bsd.prefs.mk"
+
+# kernel bug, fixed in NetBSD 9.99.82
+.if ${OPSYS} == "NetBSD" && !empty(OS_VERSION:M[0-9].*)
+CONFIGURE_ARGS.NetBSD+=        --disable-posix-spawn
+.endif
+
 AUTO_MKDIRS=           yes
 
 .include "options.mk"
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/PLIST
--- a/devel/gmake/PLIST Sun May 02 18:51:21 2021 +0000
+++ b/devel/gmake/PLIST Sun May 02 19:03:52 2021 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.15 2020/06/12 23:50:16 sevan Exp $
+@comment $NetBSD: PLIST,v 1.16 2021/05/02 19:03:52 wiz Exp $
 bin/gmake
 gnu/bin/make
 gnu/man/man1/make.1
@@ -6,6 +6,7 @@
 info/make.info
 man/man1/gmake.1
 ${PLIST.nls}share/locale/be/LC_MESSAGES/make.mo
+${PLIST.nls}share/locale/bg/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/cs/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/da/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/de/LC_MESSAGES/make.mo
@@ -23,10 +24,13 @@
 ${PLIST.nls}share/locale/lt/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/nl/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/pl/LC_MESSAGES/make.mo
+${PLIST.nls}share/locale/pt/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/pt_BR/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/ru/LC_MESSAGES/make.mo
+${PLIST.nls}share/locale/sr/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/sv/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/tr/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/uk/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/vi/LC_MESSAGES/make.mo
 ${PLIST.nls}share/locale/zh_CN/LC_MESSAGES/make.mo
+${PLIST.nls}share/locale/zh_TW/LC_MESSAGES/make.mo
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/distinfo
--- a/devel/gmake/distinfo      Sun May 02 18:51:21 2021 +0000
+++ b/devel/gmake/distinfo      Sun May 02 19:03:52 2021 +0000
@@ -1,13 +1,8 @@
-$NetBSD: distinfo,v 1.39 2020/06/12 23:50:16 sevan Exp $
+$NetBSD: distinfo,v 1.40 2021/05/02 19:03:52 wiz Exp $
 
-SHA1 (make-4.2.1.tar.bz2) = 7d9d11eb36cfb752da1fb11bb3e521d2a3cc8830
-RMD160 (make-4.2.1.tar.bz2) = 7cf74e2fd9764ffeb48f40a49077099874ad8a54
-SHA512 (make-4.2.1.tar.bz2) = 9cf00869a2f938492554f71d8cb288b5b009b3bd0489ef164f2c8f6532fc37db5c7e20af1dea288536e7c9710ee0bc6e1ddcdfc4928a8540e6e43661741825b8
-Size (make-4.2.1.tar.bz2) = 1407126 bytes
+SHA1 (make-4.3.tar.gz) = 3c40e5b49b893dbb14f1e2e1f8fe89b7298cc51d
+RMD160 (make-4.3.tar.gz) = 2f2d49f85200433a7a5119bd9d56758a3033c2c0
+SHA512 (make-4.3.tar.gz) = 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b
+Size (make-4.3.tar.gz) = 2317073 bytes
 SHA1 (patch-af) = 8ff060ecba9d664044eabd98741253881d8c9bbe
-SHA1 (patch-configure) = e3122c5c1bbe59ec4c233f42feb6d7952a1e1215
-SHA1 (patch-configure.ac) = 7d22c8f5e5d349687885f55120fa2f7c1251e399
-SHA1 (patch-dir.c) = 1616d8e26c0761c8734063806fa581ae8884b4e8
-SHA1 (patch-makeint.h) = cb5f0889d84874a16fc10bc6f91e18c2277194cc
-SHA1 (patch-posixos.c) = 4c566b23442bcc87f776181be531957c254162de
-SHA1 (patch-src_hash.c) = 2c0168db7afec3da98b30392290e5b9464ea7b5e
+SHA1 (patch-src_hash.c) = 755de04a4f9a63f5bfc2520026344d6dc8654992
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/patches/patch-configure
--- a/devel/gmake/patches/patch-configure       Sun May 02 18:51:21 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-$NetBSD: patch-configure,v 1.3 2020/06/12 23:50:16 sevan Exp $
-
-Support GLIBC glob interface version 2.
-
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=48c8a116
-
---- configure.orig     2014-10-05 16:25:21.000000000 +0000
-+++ configure
-@@ -11060,10 +11060,9 @@ else
- #include <glob.h>
- #include <fnmatch.h>
- 
--#define GLOB_INTERFACE_VERSION 1
- #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
- # include <gnu-versions.h>
--# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
-+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
-    gnu glob
- # endif
- #endif
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/patches/patch-configure.ac
--- a/devel/gmake/patches/patch-configure.ac    Sun May 02 18:51:21 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-$NetBSD: patch-configure.ac,v 1.3 2020/06/12 23:50:16 sevan Exp $
-
-Support GLIBC glob interface version 2.
-
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=48c8a116
-
---- configure.ac.orig  2014-10-05 16:24:51.000000000 +0000
-+++ configure.ac
-@@ -401,10 +401,9 @@ AC_CACHE_CHECK([if system libc has GNU g
- #include <glob.h>
- #include <fnmatch.h>
- 
--#define GLOB_INTERFACE_VERSION 1
- #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
- # include <gnu-versions.h>
--# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
-+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
-    gnu glob
- # endif
- #endif],
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/patches/patch-dir.c
--- a/devel/gmake/patches/patch-dir.c   Sun May 02 18:51:21 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-$NetBSD: patch-dir.c,v 1.3 2020/06/12 23:50:16 sevan Exp $
-
-Support GLIBC glob interface version 2.
-
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=193f1e81
-
---- dir.c.orig 2014-10-05 16:24:51.000000000 +0000
-+++ dir.c
-@@ -1212,15 +1212,40 @@ local_stat (const char *path, struct sta
- }
- #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
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/patches/patch-makeint.h
--- a/devel/gmake/patches/patch-makeint.h       Sun May 02 18:51:21 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-$NetBSD: patch-makeint.h,v 1.10 2020/06/12 23:50:16 sevan Exp $
-
-* Do not override stack limits by default.
-  It can dramatically increase the memory use of multi-threaded programs.
-
---- makeint.h.orig     2016-05-21 20:22:32.000000000 +0000
-+++ makeint.h
-@@ -442,9 +442,6 @@ extern int unixy_shell;
- #define NEXT_TOKEN(s)   while (ISSPACE (*(s))) ++(s)
- #define END_OF_TOKEN(s) while (! STOP_SET (*(s), MAP_SPACE|MAP_NUL)) ++(s)
- 
--#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
--# define SET_STACK_SIZE
--#endif
- #ifdef SET_STACK_SIZE
- # include <sys/resource.h>
- extern struct rlimit stack_limit;
diff -r 4fe0cbc5833c -r a57ac79679a8 devel/gmake/patches/patch-posixos.c
--- a/devel/gmake/patches/patch-posixos.c       Sun May 02 18:51:21 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-$NetBSD: patch-posixos.c,v 1.3 2020/06/12 23:50:16 sevan Exp $
-
-http://git.savannah.gnu.org/cgit/make.git/commit/?id=b552b05251980f693c729e251f93f5225b400714
-
-[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.orig     2016-05-21 20:21:52.000000000 +0000
-+++ posixos.c
-@@ -59,6 +59,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)
- {
-@@ -78,6 +96,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;
- }
- 
-@@ -113,6 +134,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;
- }
- 
-@@ -161,7 +185,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;
- 



Home | Main Index | Thread Index | Old Index