Stefan Hajnoczi writes:

> On Mon, Aug 29, 2011 at 8:27 PM, Michael Roth <mdr...@linux.vnet.ibm.com> 
> wrote:
>> @@ -380,7 +381,6 @@ else
>>  trace-obj-y = trace.o
>>  ifeq ($(TRACE_BACKEND),simple)
>>  trace-obj-y += simpletrace.o
>> -user-obj-y += qemu-timer-common.o
>>  endif
>>  endif

> Now that we have a concrete patch to look at I think this approach is
> problematic.  There are several subsystems in QEMU which might be
> built outside the main qemu binary for qemu-io, qemu-img, qemu-ga,
> etc.
[...]
> If QEMU is split up into libraries then having an explicit list of
> dependencies for each subsystem will be very useful, whereas the
> CONFIG_* approach doesn't collect that information in one place.

> So I think explicit subsys-obj-y += qemu-timer-common.o together with
> $(sort) during the link stage actually allows for a cleaner build
> system.  I prefer that approach.

I couldn't agree more. The only problem I see with '$(sort)' is that it
will invariably change the order of object files, which can influence
code placement.

Whether or not the spatial locality among compilation units is
important, I don't know. Although I believe it won't have much of a
performance penalty.

In any case, I tried to find a straightforward way of filtering-out
repeated words in a list with make, but couldn't find any solution other
than '$(sort)' or calling an external command with '$(shell)'.


Lluis

-- 
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom
 Tollbooth

Reply via email to