build error; missing dependencies on *every* new applet

Denys Vlasenko vda.linux at googlemail.com
Wed Nov 25 11:19:48 UTC 2009


On Wed, Nov 25, 2009 at 12:07 PM, walter harms <wharms at bfs.de> wrote:
> It would be ok if make checks only for OLDER ("a.o<b.c") files that would make
> sure that same time is no problem. I guess make employs that strategy  (some one should
> ask/try that case).

Apparently it doesn't do a<b, it does a<=b.

On ext4, it detects under 1-second mtime difference:

# >t.c
# make t.o
cc    -c -o t.o t.c
# touch t.o; touch t.c; ls --full-time t.*; make t.o
-rw-r--r-- 1 root root   0 2009-11-25 12:17:15.892327903 +0100 t.c
-rw-rw-r-- 1 root root 933 2009-11-25 12:17:15.889295360 +0100 t.o
cc    -c -o t.o t.c

But when we simulate the fs which has no nanoseconds
by making sure mtimes are equal:

# touch --date 08:30 t.o; touch --date 08:30 t.c; ls --full-time t.*; make t.o
-rw-r--r-- 1 root root   0 2009-11-25 08:30:00.000000000 +0100 t.c
-rw-rw-r-- 1 root root 933 2009-11-25 08:30:00.000000000 +0100 t.o
make: `t.o' is up to date.

make did not rebuild t.o

> I must admit that in all cases i have encountered so far the problem
> was with the script logic not the make itself (what is amazing given the age).

make is still maintained, so bugs still are fixed.
I am not that surprised. I am a bit surprised its --debug
output is not very useful - over the years I'd expect
enough people would add better one.
--
vda


More information about the busybox mailing list