[Top][All Lists]
[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