[OpenAFS-devel] RHEL5 builder is failing

Derrick Brashear shadow@gmail.com
Sun, 9 Dec 2012 08:41:25 -0500


On Sun, Dec 9, 2012 at 5:16 AM, Stephan Wiesand <stephan.wiesand@desy.de> wrote:
>
> On Dec 8, 2012, at 18:15 , Simon Wilkinson wrote:
>
>>
>> On 8 Dec 2012, at 14:47, Jason Edgecombe wrote:
>>>
>>> /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.
>
> Alternatively, we could replace $? with $< in most places. Less clutter, lower potential for cut & paste accidents.
>
> The $< seems to be a GNU make feature? At least it's not understood bye the native make on the Solaris System I have access to. But given that it's used in our Makefiles already, it should be ok?

do we build afsweb on solaris, or jafs with the java compiler? that's
the only places i see it.

-- 
Derrick