[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FreeBSD make
From: |
Ralf Wildenhues |
Subject: |
Re: FreeBSD make |
Date: |
Sat, 12 Mar 2005 17:20:33 +0100 |
User-agent: |
Mutt/1.5.6+20040907i |
Hi Bob, Noah,
* Bob Friesenhahn wrote on Fri, Mar 11, 2005 at 05:47:26PM CET:
> On Fri, 11 Mar 2005, Ralf Wildenhues wrote:
>
> >I don't know if it's worthwhile to support FreeBSD make..
> >
> >I have no idea how to keep it from looping without this patch, after
> >running the rules for vcl-tmp it always seems to want to update
> >stamp-vcl .. seems like timestamp files don't work with it at all.
>
> Are you saying that you expect make to operate properly based on
> side-effects? If vcl-tmp is not specified as a build target, is it not
> a side-effect? Why should make assume that any other files will be
> updated except for explicit targets?
I think what I saw (but did not fully understand) was what Noah meant:
* Noah Misch wrote on Sat, Mar 12, 2005 at 03:29:36AM CET:
>
> I have not analyzed the behavior of this particular group of rules, but the
> misbehavior sounds similar to something I have seen:
>
> FreeBSD `make' does not conform to POSIX in its handling of modification
> times:
>
> $ cat >Makefile
> a: b
> : a
> b: c
> : b
> $ for f in b a c; do touch $f; sleep 1; done
> $ make
> : b
> : a
> $ gmake
> : b
Yes, I think this is similar to what I see here: vcl-tmp is not actually
updated because it's removed by its rules, yet `make' thinks it needs to
redo the rules for stamp-vcl. This leads to an endless loop
(ltversion.m4 is recreated, thus all autotools rerun -- well, they are
not actually run, because they don't exist in their default names on the
system, so it's only `missing' that is rerun -- and so on.
This bug is exposed by HEAD and branch-2-0.
Note to self: when forward-porting README notes from branch-1-5, add a
not against using FreeBSD make. (savannah is currently down -- was it
not for the awkward arch UI, I'd have switched already.)
Regards,
Ralf