[OpenAFS-devel] Re: debian-linux-i386-builder issues

Andrew Deason adeason@sinenomine.net
Tue, 8 Oct 2013 15:35:37 -0500


On Tue, 8 Oct 2013 14:20:38 -0500
Andrew Deason <adeason@sinenomine.net> wrote:

> cmd_errors.c cmd.h: cmd_errors.et cmd.p.h
>         $(RM) -f cmd.h cmd_errors.c
>         echo sleeping ; sleep 1 ; echo done sleeping
>         ${COMPILE_ET} -p ${srcdir} cmd_errors -h cmd
>         touch cmd.h
>         ls
> cmd.h: cmd_errors.c
[...]
> As far as I can tell, this is due to those two files depending on the
> two different outputs from compile_et; that is, one depends on
> cmd_errors.c, and one depends on cmd.h. If I switch both of them to
> depend on cmd_errors.c, the error does not occur.

I've also realized, the problem does not occur if that last rule is
replaced by

cmd.h: cmd_errors.c ;

As Mike had mentioned earlier in the thread. That's a pretty simple
workaround to apply everywhere, but I hate these hacky workarounds, and
I don't feel like we have a guarantee that this will always work.

It really seems like this is going to keep coming up again and again
unless we have a way to generate the .c and .h files separately. That
either means modifying our compile_et to only generate one at once, or
fiddling around with temporary files a la MIT krb5 as Mike mentioned
earlier. Modifying compile_et seems way simpler and way more robust to
me, so that definitely seems preferable unless we cannot do that for
compat reasons or something.

-- 
Andrew Deason
adeason@sinenomine.net