[coreboot] [PATCH] v3: Kill unnecessary rebuilds

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Nov 6 19:14:28 CET 2008


On 06.11.2008 15:29, Stefan Reinauer wrote:
> Carl-Daniel Hailfinger wrote:
>   
>> On 06.11.2008 14:59, Carl-Daniel Hailfinger wrote:
>>   
>>     
>>> On 06.11.2008 14:46, Stefan Reinauer wrote:
>>>   
>>>     
>>>       
>>>> Carl-Daniel Hailfinger wrote:
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> Every time we run make in a v3 tree, lar, lzma, nrv2b and the option
>>>>> table get rebuilt unconditionally due to slightly incorrect dependencies.
>>>>> That's wasteful and may hide other dependency bugs.
>>>>> Fix the lar, lzma, nrv2b and option table dependencies.
>>>>>
>>>>> This trims down recompilation time a lot. The only remaining stuff being
>>>>> rebuilt is:
>>>>> ~/corebootv3-better_dependencies> make
>>>>>   CP      build/config.h
>>>>>   GEN     build/build.h
>>>>>   LAR     build/coreboot.rom
>>>>>   PAYLOAD none (as specified by user)
>>>>>   CP      build/bios.bin
>>>>>   DONE
>>>>>
>>>>> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
>>>>>
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>> Acked-by: Stefan Reinauer <stepan at coresystems.de>
>>>>   
>>>>     
>>>>       
>>>>         
>>> Thanks, committed in r984.
>>>   
>>>     
>>>       
>> I wanted to clean this up further, but I'm hitting a big dependency bug.
>> Try this patch and watch make explode:
>>
>> Index: util/lar/Makefile
>> ===================================================================
>> --- util/lar/Makefile	(Revision 984)
>> +++ util/lar/Makefile	(Arbeitskopie)
>> @@ -22,10 +22,8 @@
>>  LARDIR := $(obj)/util/lar/
>>  
>>  COMPRESSOR := $(LZMA_OBJ) $(obj)/util/lzma/lzma-compress.o
>> -LARDIR     += $(obj)/util/lzma/
>>  
>>  COMPRESSOR += $(obj)/util/nrv2b/nrv2b-compress.o
>> -LARDIR     += $(obj)/util/nrv2b/
>>  
>>  LAROBJ_ABS := $(patsubst %,$(obj)/util/lar/%,$(LAROBJ))
>>  
>>   
>> Fixing this would require us to add build/util/lzma/ as a dependency to
>> every lzma object in util/lzma/Makefile. And that's the point where I
>> ask about better solutions.
>>     
>
> I think leaving it as it is sounds like a better solution already ;-)
>   

The lzma dependencies are already broken (since the initial commit in
r157) and parallel make is going to trip on them. My test patch above
just makes this visible on singlethreaded make.
Of course we can declare parallel make as unusable in v3 (like it is in
v2, see the spurious breakage there), but I'd prefer to do this the
right way.

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list