URL:
  <http://savannah.gnu.org/bugs/?20006>

                 Summary: Regression between 3.80 and 3.81
                 Project: make
            Submitted by: icarus
            Submitted on: Wednesday 30/05/07 at 00:20
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 3.81
        Operating System: Any
           Fixed Release: None

    _______________________________________________________

Details:

Given a directory containing only a file T.in (any contents) and a Makefile
with the following contents

%.out: %; touch $@
%: %.in;touch $@
.PHONY: good bad
good: T T.out
bad: T.out T

then running "make -r bad" with GNU make 3.81 gives

make: *** No rule to make target `T.out', needed by `bad'.  Stop.

On the other had using 3.80, it produces the expected results.
touch T
touch T.out

The change from version 1.40 to 1.41 of implicit.c which has the following
log message
revision 1.41
date: 2004-09-21 13:23:12 -0700;  author: bosk;  state: Exp;  lines: +3 -1;
Fixed bug in implicit rule prerequisite evaluation code. Added test.

is at least partly responsible for the regression. Making just this change
causes the modified make to give the error message. However both 3.80 and
3.81 manage to build the 'good' target, but the modified one gives

touch T
make+: *** No rule to make target `T.out', needed by `good'.  Stop.






    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?20006>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/



_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to