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@gmx.net
Acked-by: Stefan Reinauer stepan@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))
HOSTCC build/util/lar/lib.o HOSTCXX build/util/lzma/LZMAEncoder.o Assembler messages: Fatal error: can't create /sources/tmptrees/corebootv3-better_dependencies/build/util/lzma/LZMAEncoder.o: No such file or directory make: *** [/sources/tmptrees/corebootv3-better_dependencies/build/util/lzma/LZMAEncoder.o] Fehler 1
The obvious bug is that build/util/lzma/LZMAEncoder.o does not depend on build/util/lzma/ and that means compilation has no target directory. As long as make is not run in parallel mode, you will not see the bug in svn HEAD because make first creates build/util/lzma/ and then compiles files there. Once you run in parallel mode, it is entirely possible that the directory creation happens after the compile attempt and stuff will explode even with current svn HEAD.
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.
Regards, Carl-Daniel