bugmake - Bugs: bug #58364, Inconsistent behavior between 4.3...

 
 

bug #58364: Inconsistent behavior between 4.3 and 4.2.1

Submitter:  albert <albert_2>
Submitted:  Wed 13 May 2020 02:12:34 PM UTC
   
 
Severity:  3 - Normal Item Group:  Bug
Status:  Duplicate Privacy:  Public
Assigned to:  None Open/Closed:  Closed
Component Version:  4.3 Operating System:  None
Fixed Release:  None Triage Status:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 14 May 2020 02:56:57 PM UTC, comment #8: 

I agree that it is unfortunate and these things can happen.

The "breaking change" was due to the extra number of output lines (and for CMake) with a different syntax and might break automatic scripts.

I also think that CMake is widely used but the remark "I've not received any reports from anyone about this as an issue except for CMake users so reliance on this behavior apparently wasn't too wide-spread" I don't support, only users that keep up to date will notice the problem. I noticed the problem after 3 month when I updated Cygwin and unfortunately only make is updated and CMake isn't yet (I did build it myself and the problem is gone).
A lot of users won't notice it whilst they don't update their OS / their OS does not provide the latest updates. I think the major number of people seeing the problem will come in a couple of years.


albert <albert_2>
Thu 14 May 2020 02:45:57 PM UTC, comment #7: 

It is unfortunate, but the change (don't allow .SILENT to be passed down to submakes) was not understood to have this side-effect for --no-print-directory until after the release; I've not received any reports from anyone about this as an issue except for CMake users so reliance on this behavior apparently wasn't too wide-spread (I understand CMake itself is extremely wide-spread).

Unfortunately the previous behavior was quite clearly wrong and needed to be changed, and equally unfortunately there's no realistic way to make this change backward-compatible.

I wouldn't personally call this a "breaking change".  Nothing broke: builds continued to run correctly and successfully build code.  It's just that some extra (admittedly annoying to some) output was generated.

The workaround is straightforward for anyone who wants to avoid this but can't upgrade their CMake to a newer version; as mentioned earlier, you can add export GNUMAKEFLAGS=--no-print-directory to your shell setup before invoking make.

Paul D. Smith <psmith>
Group administrator
Thu 14 May 2020 09:42:25 AM UTC, comment #6: 

It is indeed hard to communicate the breaking change to the users / community when it is not in the initial NEWS file. I don't think there isn't a lot that can be done.

The current way it is in the, to be released, NEWS file is in my opinion not an adequate solution. The message is hidden in the original release texts and the users that try to keep up to date will only read the new NEWS items and thus miss this hidden message. I would suggest a special header above the 4.3 release with this (and other?) missed NEWS items.

Good to read that in the cmake 3.16.6 it has been fixed as well (hard to test as no cmake 3.16.6 is yet available for the Cygwin platform, but that is of no concern to GNU Make / CMake, it is just the lagging of the platform specific distribution).

(hopefully the search engines will be able to find these references, as I didn't find an appropriate link)

albert <albert_2>
Wed 13 May 2020 08:14:58 PM UTC, comment #5: 

The current master HEAD version of the Tiny C text says:


* GNU Make can now be built for MS-Windows using the Tiny C tcc compiler.


Paul D. Smith <psmith>
Group administrator
Wed 13 May 2020 07:53:44 PM UTC, comment #4: 

Perhaps it wasn't apparent to albert that it's in the NEWS file now, ready for the next release, as of:

http://git.savannah.gnu.org/cgit/make.git/commit/NEWS?id=660a2eafe52b8fad0dbee8ccddb990015dc68b54

Editing the NEWS file in the previous release, after it had been released, that might lead to worse consequences than leaving it with the omission.  Every release has bugs, some in the documentation.

(I fear a grammatical whoopsie slipped in at the same time.
 "Tiny C's tcc compiler" would have been good, as was the previous text, "the Tiny C tcc compiler", but "the Tiny C's tcc compiler" isn't available in my idiolect.)

Martin Dorey <mdorey>
Wed 13 May 2020 07:42:35 PM UTC, comment #3: 

The CMake issue was fixed in CMake 3.16.6: https://gitlab.kitware.com/cmake/cmake/-/issues/20487

Regarding communicating, the problem was discussed on the GNU make mailing lists and in Savannah bug #58013.  I'm not sure how else to communicate with the community.

Paul D. Smith <psmith>
Group administrator
Wed 13 May 2020 07:16:48 PM UTC, comment #2: 

The background of the problem is actually that in cmake now, by default, also the Entering / Leaving messages appear. In the past they were automatically suppressed.

People using CMake can also set the MAKEFLAGS environment variable, but it would be nice that they would have a possibility as well to automatically suppress the messages inside the generated Makefiles.


Does something like this exist and when not is there a possibility to provide it?

As the message is not in the NEWS and Release Notes how will you communicate this missing Backward-incompatibility to the community?

albert <albert_2>
Wed 13 May 2020 02:35:59 PM UTC, comment #1: 

This is due to this change, unfortunately accidentally left out of the NEWS file:


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


If you want to disable directory printing from within your makefile (note, I personally don't recommend this: it should be up to the person invoking make whether they want to see this type of debugging information not the author of the makefile) you can add something like this to your makefile:


MAKEFLAGS += --no-print-directory


If you personally don't want to see the directories printed you can always add something like export GNUMAKEFLAGS=--no-print-directory to your ~/.bashrc or similar.

Paul D. Smith <psmith>
Group administrator
Wed 13 May 2020 02:12:34 PM UTC, original submission:  

When running the make version 4.3 I get now (a lot of) message like:
make[2]: Entering directory '/.../.../.../../...'
(and the corresponding Leaving messages).
whilst in version 4.2 these messages were not present.

Of course one can overcome this by using "-no-print-directory", but it looks to me like an inconsistent and breaking change behavior but in the release notes I didn't find anything either.

(I used it on Cygwin)


albert <albert_2>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by mdorey (Posted a comment)
  • -email is unavailable- added by psmith (Posted a comment)
  • -email is unavailable- added by albert_2 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-05-13 psmith StatusNot A Bug Duplicate
    2020-05-13 psmith StatusNone Not A Bug
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code