bug-make
[Top][All Lists]
Advanced

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

Re: Weird text-dependent bug in $(eval ...), simple test case


From: Paul Smith
Subject: Re: Weird text-dependent bug in $(eval ...), simple test case
Date: Tue, 02 Mar 2010 00:40:01 -0500

On Mon, 2010-03-01 at 02:25 +0000, Jamie Lokier wrote:
> Both of you have confirmed the bug - because the correct behaviour has
> no error messages, and you both got messages.  Neither of you was able
> to reproduce getting a text-dependent number of messages, but both of
> you see buggy behaviour so it's easy to reproduce a problem to
> investigate.
> 
> Nobody wants to investigate this bug further?

It's not at all clear this is a bug.  In fact the behavior is, I
suspect, intentional.  After all, from a filesystem standpoint there is
no difference between "foo" and "foo/" (assuming foo is a directory, and
if it's not the latter is an illegal path).

Targets in make are considered to be files, so "./foo", "foo",
"./././foo", are all considered to be the same target.  Similarly, for a
directory "foo" the target "foo/" is considered to be the same.


Looking through the code what actually happens is that each target
filename is passed to glob(3) (to support targets like "*.c" etc.) and
it turns out to be the glob(3) function which canonical-izes the
pathname; passing "foo/" as the pathname to glob(3) returns just "foo".

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "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]