[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #64259] Regression in master: make ignores statements it should not
From: |
Dmitry Goncharov |
Subject: |
[bug #64259] Regression in master: make ignores statements it should not ignore. |
Date: |
Sat, 27 May 2023 11:44:30 -0400 (EDT) |
Follow-up Comment #1, bug #64259 (project make):
Commit 07fcee35f058a876447c8a021f9eb1943f902534 introduced a regression.
The text in NEWS clarifies that the idea was to never consider a line starting
with the recipe prefix as a conditional, to ensure make does not confuse
recipe lines with conditionals as described in sv 64185.
However, there are cases where the fix
1. Still considers lines starting with the recipe prefix as conditionals.
2. Ignores lines which it should not ignore.
In this makefile both 'ifdef blah' and 'else' are intended with tabs.
$ ls
makefile
$ cat makefile
ifdef blah
$(info true)
else
$(info false)
endif
all:
$ make-4.4
false
make-4.4: Nothing to be done for 'all'.
$ # this is the latest make from master
$ ~/src/gmake/make/m64/make
make: Nothing to be done for 'all'.
We can see the latest make
1. honored 'ifdef blah', even though it is intended with a tab.
2. failed to run '$(info false)'.
The patch in the attachment causes make to fail with a syntax error here.
The patch keeps NEWS intact.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64259>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/