Re: GNU Make 4.3.92 release candidate available

2022-10-25 Thread Eli Zaretskii
> From: Paul Smith 
> Date: Mon, 24 Oct 2022 02:59:18 -0400
> 
> I expect this to be the final release candidate before GNU Make 4.4.
> I will probably allow for testing for about a week.
> 
> 
> GNU make is a tool which controls the generation of executables and
> other non-source files of a program from the program's source files.
> 
> You can learn more at: https://www.gnu.org/software/make/
> 
> 
> A new release candidate for GNU make 4.4 is available now for download:
> 
>   724e9144fa841bb1315aee1f2fd8e1d2  make-4.3.92.tar.lz
>   09a2bb194655c99cd9eff23a9128df7f  make-4.3.92.tar.gz
> 
> You can obtain a copy from:  https://alpha.gnu.org/gnu/make/

The MinGW port of this builds cleanly and passes the test suite (after
my usual patching of it).



Re: GNU Make 4.3.92 release candidate available

2022-10-25 Thread Paul Smith
On Tue, 2022-10-25 at 08:42 +0200, Martin Reinders wrote:
> but from what Paul said in https://lists.gnu.org/archive/html/bug-
> make/2019-05/msg00017.html
> 
> > Argh, another glob.c issue.  I really need to figure out how to
> > update to a newer version, preferably without breaking Windows AND
> > pulling in 75% of gnulib stuff in the process.
> 
> I assume we still have to live with these warnings?

Yes, I have no plans to try to resolve this before 4.4.  I've been
noodling it over in the back of my brain but so far no epiphanies.

> Apart from that, there is only one compiler warning:
> 
>   src/getopt.c:685:6: warning: add explicit braces to avoid dangling
> else [-Wdangling-else]
>    else
>    ^
> 
> A fix had been posted in
> https://savannah.gnu.org/bugs/?func=detailitem_id=58075. That
> looks like a "small effort" change to me, perhaps it can be
> incorporated into GNU Make 4.4?

The thing is that getopt.c is also an external file, like glob.c.  It's
not developed by GNU make, it was pulled in from an external toolset
(like gnulib--but a long time ago so it's not receiving updates).

I prefer to not make changes to these types of files locally but
instead find a way to import newer versions.

In any event, the C code here is correct, regardless of the warning.

Cheers!



Re: GNU Make 4.3.92 release candidate available

2022-10-25 Thread Martin Reinders
Am 24.10.22 um 08:59 schrieb Paul Smith:
> I expect this to be the final release candidate before GNU Make 4.4.
> I will probably allow for testing for about a week.

(I had accidentally posted this yesterday as reply to an older thread, but it 
was meant as feedback to make-4.3.92.)

On macOS, compiling "glob.c" gives these warnings:

  glob.c:823:27: warning: incompatible pointer types passing 'char **' to 
parameter of type 'char *'; dereference with * [-Wincompatible-pointer-types]
= (char **) realloc (pglob->gl_pathv,
 ^~~
 *
  glob.c:942:24: warning: incompatible pointer types passing 'char **' to 
parameter of type 'char *'; dereference with * [-Wincompatible-pointer-types]
= (char **) realloc (pglob->gl_pathv,
 ^~~
 *
  glob.c:997:39: warning: incompatible pointer types passing 'char **' to 
parameter of type 'char *'; dereference with * [-Wincompatible-pointer-types]
  new_pathv = (char **) realloc (pglob->gl_pathv,
 ^~~
 *
  glob.c:1388:23: warning: incompatible pointer types passing 'char **' to 
parameter of type 'char *'; dereference with * [-Wincompatible-pointer-types]
= (char **) realloc (pglob->gl_pathv,
 ^~~
 *

but from what Paul said in 
https://lists.gnu.org/archive/html/bug-make/2019-05/msg00017.html

> Argh, another glob.c issue.  I really need to figure out how to update
> to a newer version, preferably without breaking Windows AND pulling in
> 75% of gnulib stuff in the process.

I assume we still have to live with these warnings?

Apart from that, there is only one compiler warning:

  src/getopt.c:685:6: warning: add explicit braces to avoid dangling else 
[-Wdangling-else]
   else
   ^

A fix had been posted in 
https://savannah.gnu.org/bugs/?func=detailitem_id=58075. That looks like a 
"small effort" change to me, perhaps it can be incorporated into GNU Make 4.4?

Regards, Martin




Re: GNU Make 4.3.92 release candidate available

2022-10-24 Thread Sam James


> On 24 Oct 2022, at 14:17, Frank Heckenbach  wrote:
> 
> Paul Smith wrote:
> 
>> I expect this to be the final release candidate before GNU Make 4.4.
>> I will probably allow for testing for about a week.

> All problems I reported appear fixed, thanks.
> 

Indeed, me too. I'd forgotten I was even using it :)



signature.asc
Description: Message signed with OpenPGP


Re: GNU Make 4.3.92 release candidate available

2022-10-24 Thread Paul Smith
On Mon, 2022-10-24 at 15:17 +0200, Frank Heckenbach wrote:
> Paul Smith wrote:
> > I expect this to be the final release candidate before GNU Make
> > 4.4.  I will probably allow for testing for about a week.
> 
> All problems I reported appear fixed, thanks.

Nice, thanks for checking!  And big thanks to Dmitry for finding (and
patching) most of those issues.



Re: GNU Make 4.3.92 release candidate available

2022-10-24 Thread Frank Heckenbach
Paul Smith wrote:

> I expect this to be the final release candidate before GNU Make 4.4.
> I will probably allow for testing for about a week.

All problems I reported appear fixed, thanks.



GNU Make 4.3.92 release candidate available

2022-10-24 Thread Paul Smith
I expect this to be the final release candidate before GNU Make 4.4.
I will probably allow for testing for about a week.


GNU make is a tool which controls the generation of executables and
other non-source files of a program from the program's source files.

You can learn more at: https://www.gnu.org/software/make/


A new release candidate for GNU make 4.4 is available now for download:

  724e9144fa841bb1315aee1f2fd8e1d2  make-4.3.92.tar.lz
  09a2bb194655c99cd9eff23a9128df7f  make-4.3.92.tar.gz

You can obtain a copy from:  https://alpha.gnu.org/gnu/make/

- NEWS 
Version 4.3.92 (24 Oct 2022)

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

https://sv.gnu.org/bugs/index.php?group=make_id=111_release_id=109=custom

* WARNING: Deprecation!
  The following systems are deprecated in this release:
- OS/2 (EMX)
- AmigaOS
- Xenix
- Cray
  In the NEXT release of GNU Make, support for these systems will be removed.
  If you want to see them continue to be supported, contact .

* WARNING: Future backward-incompatibility!
  In the NEXT release of GNU Make, pattern rules will implement the same
  behavior change for multiple targets as explicit grouped targets, below: if
  any target of the rule is needed by the build, the recipe will be invoked if
  any target of the rule is missing or out of date.  During testing some
  makefiles were found to contain pattern rules that do not build all targets;
  this can cause issues so we are delaying this change for one release cycle
  to allow these makefiles to be updated.  GNU Make shows a warning if it
  detects this situation: "pattern recipe did not update peer target".

* WARNING: Backward-incompatibility!
  GNU Make now uses temporary files in more situations than previous releases.
  If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the
  contents during the build, or uses restrictive permissions, this may cause
  problems.  You can choose an alternative temporary directory only for use by
  GNU Make by setting the new MAKE_TMPDIR environment variable before invoking
  make.  Note that this value CANNOT be set inside the makefile, since make
  needs to find its temporary directory before the makefiles are parsed.

* WARNING: Backward-incompatibility!
  Previously each target in a explicit grouped target rule was considered
  individually: if the targets needed by the build were not out of date the
  recipe was not run even if other targets in the group were out of date.  Now
  if any of the grouped targets are needed by the build, then if any of the
  grouped targets are out of date the recipe is run and all targets in the
  group are considered updated.

* 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