2006-10-31
A Solaris 8 make
bug
; cat Makefile foo : /tmp/bar touch foo ; mkdir /tmp/bar ; make touch foo ; make `foo' is up to date. ; touch /tmp/bar/t ; make `foo' is up to date. ; gmake touch foo
As 'make -ndd
' shows, for some reason Solaris 8's version of make
decides that directories always have a timestamp of 0. It knows that
they exist, because if you remove /tmp/bar
it complains about
it. This behavior is the same for both /usr/ccs/bin/make
and
/usr/xpg4/bin/make
.
On a quick test, this bug appears to be gone in Solaris 9. There's
a Solaris 8 make
patch not applied to our systems, but the README
doesn't mention anything like this bug.
(Depending on a directory is the kind of thing you do if you're building something from a bunch of files dropped into a directory, and you need to do something every time a file is added or removed.)
I note in passing that make
problems that cause things to not get
rebuilt are much more annoying than make
problems that cause things
to get rebuilt all the time.
An Internet rule of thumb
Any Internet protocol change that requires everyone's participation is dead on arrival.
This often applies to would-be antispam efforts such as SPF.
(Superficially, SPF looks like it is an isolated thing that only involves the sender having SPF records and the receiver checking them. It's not, and the way it requires everyone's participation is illustrated by the need for the Sender Rewriting Scheme.)