[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.