[OpenAFS-devel] RHEL5 builder is failing

Simon Wilkinson simonxwilkinson@gmail.com
Sat, 8 Dec 2012 17:15:14 +0000


On 8 Dec 2012, at 14:47, Jason Edgecombe wrote:
>=20
> /usr/bin/install -c -m 644  =
/home/jwedgeco/buildslave/rhel5-x86_64-builder/build/include/rx/rxkad.h
> /usr/bin/install: missing destination file operand after =
`/home/jwedgeco/buildslave/rhel5-x86_64-builder/build/include/rx/rxkad.h'

I've seen this failure a few times with local builds. It almost always =
resolves itself with the next run of "make".

As far as I can tell, it happens because of our use of $? in our =
installation rules. For example, in this case we have:

${TOP_INCDIR}/rx/rxkad.h: rxkad.h
        ${INSTALL_DATA} $? $@

The $? automatic variable is defined as expanding to "all of the =
prerequisites which are newer than the target". It looks like there's
some kind of a race in make which can result in $? expanding to an empty =
string, but I'm not enough of a make expert to explain this, or even to =
say whether there is some kind of subtle reason why this problem occurs.

The obvious fix for OpenAFS, assuming the we don't want to get in to =
debugging make issues, is to replace all of the occurrences of $? in =
install rules with the actual name of the file being installed. This is =
a relatively simple, if tedious, job to do.

Any volunteers?

Cheers,

Simon.