Fri Jun 12 14:48:38 2020 UTC ()
Update to make 4.3

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.

* WARNING: Backward-incompatibility!
  Previously using the .SILENT pseudo-target in a makefile would force all
  sub-makes to be invoked with the '-s' option, effectively making all
  sub-makes silent as well.  In this release, .SILENT only has effect for the
  current invocation of make.  As a side-effect of this, .SILENT no longer has
  a side-effect of enabling the --no-print-directory option, which using -s
  will do.

* 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>

* 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>

* 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>

* 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>

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.


(sevan)
diff -r1.109 -r1.110 pkgsrc/devel/gmake/Makefile
diff -r1.36 -r1.37 pkgsrc/devel/gmake/distinfo
diff -r1.1 -r0 pkgsrc/devel/gmake/patches/patch-configure
diff -r1.1 -r0 pkgsrc/devel/gmake/patches/patch-configure.ac
diff -r1.1 -r0 pkgsrc/devel/gmake/patches/patch-dir.c
diff -r1.1 -r0 pkgsrc/devel/gmake/patches/patch-pa
diff -r1.1 -r0 pkgsrc/devel/gmake/patches/patch-posixos.c
diff -r1.8 -r0 pkgsrc/devel/gmake/patches/patch-makeint.h
diff -r0 -r1.1 pkgsrc/devel/gmake/patches/patch-src_hash.c

cvs diff -r1.109 -r1.110 pkgsrc/devel/gmake/Makefile (expand / switch to unified diff)

--- pkgsrc/devel/gmake/Makefile 2020/01/18 23:30:28 1.109
+++ pkgsrc/devel/gmake/Makefile 2020/06/12 14:48:38 1.110
@@ -1,21 +1,19 @@ @@ -1,21 +1,19 @@
1# $NetBSD: Makefile,v 1.109 2020/01/18 23:30:28 rillig Exp $ 1# $NetBSD: Makefile,v 1.110 2020/06/12 14:48:38 sevan Exp $
2 2
3DISTNAME= make-4.2.1 3DISTNAME= make-4.3
4PKGNAME= g${DISTNAME} 4PKGNAME= g${DISTNAME}
5PKGREVISION= 1 
6CATEGORIES= devel 5CATEGORIES= devel
7MASTER_SITES= ${MASTER_SITE_GNU:=make/} 6MASTER_SITES= ${MASTER_SITE_GNU:=make/}
8EXTRACT_SUFX= .tar.bz2 
9 7
10MAINTAINER= pkgsrc-users@NetBSD.org 8MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= https://www.gnu.org/software/make/make.html 9HOMEPAGE= https://www.gnu.org/software/make/make.html
12COMMENT= GNU version of 'make' utility 10COMMENT= GNU version of 'make' utility
13LICENSE= gnu-gpl-v3 11LICENSE= gnu-gpl-v3
14 12
15USE_FEATURES= snprintf 13USE_FEATURES= snprintf
16 14
17GNU_CONFIGURE= yes 15GNU_CONFIGURE= yes
18TEXINFO_REQD+= 4.0 16TEXINFO_REQD+= 4.0
19INFO_FILES= yes 17INFO_FILES= yes
20 18
21# NOTE: the 'test' target requires perl, but since gmake does 19# NOTE: the 'test' target requires perl, but since gmake does

cvs diff -r1.36 -r1.37 pkgsrc/devel/gmake/distinfo (expand / switch to unified diff)

--- pkgsrc/devel/gmake/distinfo 2018/07/04 14:09:07 1.36
+++ pkgsrc/devel/gmake/distinfo 2020/06/12 14:48:38 1.37
@@ -1,13 +1,8 @@ @@ -1,13 +1,8 @@
1$NetBSD: distinfo,v 1.36 2018/07/04 14:09:07 bsiegert Exp $ 1$NetBSD: distinfo,v 1.37 2020/06/12 14:48:38 sevan Exp $
2 2
3SHA1 (make-4.2.1.tar.bz2) = 7d9d11eb36cfb752da1fb11bb3e521d2a3cc8830 3SHA1 (make-4.3.tar.gz) = 3c40e5b49b893dbb14f1e2e1f8fe89b7298cc51d
4RMD160 (make-4.2.1.tar.bz2) = 7cf74e2fd9764ffeb48f40a49077099874ad8a54 4RMD160 (make-4.3.tar.gz) = 2f2d49f85200433a7a5119bd9d56758a3033c2c0
5SHA512 (make-4.2.1.tar.bz2) = 9cf00869a2f938492554f71d8cb288b5b009b3bd0489ef164f2c8f6532fc37db5c7e20af1dea288536e7c9710ee0bc6e1ddcdfc4928a8540e6e43661741825b8 5SHA512 (make-4.3.tar.gz) = 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b
6Size (make-4.2.1.tar.bz2) = 1407126 bytes 6Size (make-4.3.tar.gz) = 2317073 bytes
7SHA1 (patch-af) = 8ff060ecba9d664044eabd98741253881d8c9bbe 7SHA1 (patch-af) = 8ff060ecba9d664044eabd98741253881d8c9bbe
8SHA1 (patch-configure) = e3122c5c1bbe59ec4c233f42feb6d7952a1e1215 8SHA1 (patch-src_hash.c) = 4820633cc6b5d0d42cd8aeea46bb1b3f5f6475bd
9SHA1 (patch-configure.ac) = 7d22c8f5e5d349687885f55120fa2f7c1251e399 
10SHA1 (patch-dir.c) = 1616d8e26c0761c8734063806fa581ae8884b4e8 
11SHA1 (patch-makeint.h) = cb5f0889d84874a16fc10bc6f91e18c2277194cc 
12SHA1 (patch-pa) = 2c0168db7afec3da98b30392290e5b9464ea7b5e 
13SHA1 (patch-posixos.c) = 4c566b23442bcc87f776181be531957c254162de 

File Deleted: pkgsrc/devel/gmake/patches/Attic/patch-configure

File Deleted: pkgsrc/devel/gmake/patches/Attic/patch-configure.ac

File Deleted: pkgsrc/devel/gmake/patches/Attic/patch-dir.c

File Deleted: pkgsrc/devel/gmake/patches/Attic/patch-pa

File Deleted: pkgsrc/devel/gmake/patches/Attic/patch-posixos.c

File Deleted: pkgsrc/devel/gmake/patches/Attic/patch-makeint.h

File Added: pkgsrc/devel/gmake/patches/patch-src_hash.c
$NetBSD: patch-src_hash.c,v 1.1 2020/06/12 14:48:38 sevan Exp $

PCC says: hash.c:326: error: Constant "4294967295" is out of range

--- work/make-4.3/src/hash.c.orig	2020-06-12 14:40:24.838680043 +0000
+++ work/make-4.3/src/hash.c
@@ -321,7 +321,7 @@ round_up_2 (unsigned long n)
   n |= (n >> 8);
   n |= (n >> 16);
 
-#if !defined(HAVE_LIMITS_H) || ULONG_MAX > 4294967295
+#if !defined(HAVE_LIMITS_H) || ULONG_MAX > 4294967295ul
   /* We only need this on systems where unsigned long is >32 bits.  */
   n |= (n >> 32);
 #endif