[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
URL:
  <https://savannah.gnu.org/bugs/?58364>

                 Summary: Inconsistent behavior between 4.3 and 4.2.1
                 Project: make
            Submitted by: albert_2
            Submitted on: Wed 13 May 2020 02:12:34 PM UTC
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 4.3
        Operating System: None
           Fixed Release: None
           Triage Status: None

    _______________________________________________________

Details:

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)






    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Update of bug #58364 (project make):

                  Status:                    None => Not A Bug              
             Open/Closed:                    Open => Closed                

    _______________________________________________________

Follow-up 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.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Follow-up Comment #2, bug #58364 (project make):

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?

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Update of bug #58364 (project make):

                  Status:               Not A Bug => Duplicate              

    _______________________________________________________

Follow-up 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.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Follow-up Comment #4, bug #58364 (project make):

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

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Follow-up Comment #5, bug #58364 (project make):

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.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Follow-up Comment #6, bug #58364 (project make):

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)

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Follow-up Comment #7, bug #58364 (project make):

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.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #58364] Inconsistent behavior between 4.3 and 4.2.1

anonymous
Follow-up Comment #8, bug #58364 (project make):

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.



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58364>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/