[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Possible bug with 3.81?

From: Paul D. Smith
Subject: Re: Possible bug with 3.81?
Date: Sat, 28 Oct 2006 09:25:50 -0400

On Saturday, 28 October, Eli Zaretskii (address@hidden) wrote:

> > No, I think this is a bug.  Make should choose the first pattern rule to
> > build lib%.a, because both patterns can be built.
> I'm confused: I think Make did choose the first pattern rule.  The
> problem was with the order of prerequisites in that rule.  Am I
> missing something?

If you unpack the example attached to the first post and annotate it a
little bit, you'll see that what actually happens is make chooses the
second pattern rule rather than the first one:

  .c.o: ; @echo '.c -> .o'

  lib%.a : %.def %.o ; @echo Rule: .def .o

  lib%.a: %.def ; @echo Rule: .def

  $ make -rR   
  Rule: .def
  .c -> .o

  $ make-3.80 -rR   
  .c -> .o
  Rule: .def .o

I think 3.80 (and below) have this right, and 3.81 has this wrong.

 Paul D. Smith <address@hidden>          Find some GNU make tips at:            
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

[Prev in Thread] Current Thread [Next in Thread]