build error; missing dependencies on *every* new applet
Alessandro Rubini
rubini-list at gnudd.com
Wed Nov 25 07:34:05 UTC 2009
Denys:
> Anyway. I can easily reproduce it with:
>
> make distclean
> make allnoconfig
> #sleep 1.2
> sed -i -e "/CONFIG_TRUE/s/.*/CONFIG_TRUE=y/" .config
> make -j<N>
>
> [...]
>
> Strange thing is that if I add a delay before sed (see "sleep 1.2"),
> it starts to build reliably. I am totally confused.
Good catch.
> What does this tell us? That "make allnoconfig" places timestamps
> a bit in the future, and therefore sed does not make .config newer
> than include/autoconf.h unless we have a pause??!?
No. They simply have the same timestamp and make doesn't trigger the
rule. I'd say it's a bug in make, but the program has been definitely
designed when nobody managed to fulfill a rule in less than one second.
Example:
tornado% touch --date 08:30 pio.c
tornado% touch --date 08:30 pio.o
tornado% ls --full-time -l pio*
-rw-rw-r-- 1 rubini staff 0 2009-11-25 08:30:00.000000000 +0100 pio.c
-rw-rw-r-- 1 rubini staff 0 2009-11-25 08:30:00.000000000 +0100 pio.o
tornado% make pio.o
make: `pio.o' is up to date.
/alessandro
More information about the busybox
mailing list