[illumos-Developer] Requesting code review for bug #515 ...

Roland Mainz roland.mainz at nrubsig.org
Thu Dec 16 17:57:14 PST 2010


On Fri, Dec 17, 2010 at 2:32 AM, Eric Schrock <eric.schrock at delphix.com> wrote:
> On Thu, Dec 16, 2010 at 8:18 PM, Roland Mainz <roland.mainz at nrubsig.org>
> wrote:
>> The issues with .WAIT are known. The goal for _this_ patch is only to
>> provide a _low_-risk fix for the current sporadic parallel build
>> bustage by adding _all_ dependicies (except the one for "libc") only.
>> There should be no dependicy removals or a larger restructuration (or
>> sorting the list... Garrett said I should defer that to later, too) -
>> the goal for this bug is to fix the bustage only (because it blocks
>> (or delays) contributions).
>
> I'm confused as to what the actual breakage is.  Most of what you've done
> doesn't actually have any effect on the build process, and the one issue
> mentioned in the bug doesn't make sense to me (see below).

One of the four issues I hit is described in
http://www.illumos.org/issues/514 ... the basic problem is that
usr/src/lib/Makefile only seems to describe much of the dependicies in
a trial&&error manner but not as full dependicies.

>> > How exactly does this situation get interpreted by make?
>>
>> "make" will honor the .WAIT and the dependices.
>
> I'm not sure I understand.  You've changed the Makefile such that:
> 1. 'A' must be built before 'B' (enforced by .WAIT)

Erm... I didn't touch _any_ .WAIT statements intentionally.

> 2. 'A' depends on 'B' being built first (enforced by dependencies)
> Where 'A' is libnwam and 'B' is libbsm.  I'm not a make expert, but how can
> both these constraints be honored at the same time?

AFAIK both mechanisms work in different layers:
1. Dependicies define the sort order when "make" prepares the list in
which it wants to execute the tasks. This list is prepared before
anything is launched.
2. ".WAIT" is dumb and just waits until all outstanding tasks
_launched_ before this point have been completed (this works analogous
to the special shell buitin "wait" called without arguments). It will
AFAIK not care if a task was not lauched before this point because
it's dependicies couldn't be met.
3. The task "missing" will be scheduled by "make" as soon all
dependicies have been met
4. This only works for the case you have described because the build
system has the libraries already installed (which is the part I'd like
to get rid off as final (not this bug) result)

I know this is stupid+brainmelting+horrible and I agree the whole
stuff with the ".WAIT" should go... but not this time.

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)



More information about the Developer mailing list