Hi,
I just tried make randconfig to test whether all allowed configuations can be built. The result was disastrous. Without a make distclean before make randconfig, I get all sorts of compile errors for about 60% of the randomly generated .config files. With make distclean before make randconfig, most of the configurations built successfully.
This means that some dependencies are wrong, resulting in incorrect builds.
To reproduce, simply run "make randconfig; make;" in a loop. It will fail after two or three iterations.
Regards, Carl-Daniel
On thing I know for sure: statictree.h is in the wrong place. it is in build, and needs to be in build/mainboard/abcd/xyz
ron
On 21.02.2008 17:07, ron minnich wrote:
On thing I know for sure: statictree.h is in the wrong place. it is in build, and needs to be in build/mainboard/abcd/xyz
Move statictree.h to build/mainboard/$vendor/$board/.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: LinuxBIOSv3-makefiledependencies/Rules.make =================================================================== --- LinuxBIOSv3-makefiledependencies/Rules.make (Revision 631) +++ LinuxBIOSv3-makefiledependencies/Rules.make (Arbeitskopie) @@ -23,7 +23,7 @@ # Miscellaneous mainboard specific build targets! #
-$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h +$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/mainboard/$(MAINBOARDDIR)/statictree.h $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) $(COREBOOTINCLUDE) -c -o $@ $<
@@ -31,7 +31,7 @@ $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@
-$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc +$(obj)/mainboard/$(MAINBOARDDIR)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@
@@ -55,7 +55,7 @@ # Miscellaneous superio specific build targets! #
-$(obj)/superio/%.o: $(src)/superio/%.c $(obj)/statictree.h +$(obj)/superio/%.o: $(src)/superio/%.c $(obj)/mainboard/$(MAINBOARDDIR)/statictree.h $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ @@ -64,7 +64,7 @@ # Miscellaneous northbridge specific build targets! #
-$(obj)/northbridge/%.o: $(src)/northbridge/%.c $(obj)/statictree.h +$(obj)/northbridge/%.o: $(src)/northbridge/%.c $(obj)/mainboard/$(MAINBOARDDIR)/statictree.h $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ @@ -73,7 +73,7 @@ # Miscellaneous southbridge specific build targets! #
-$(obj)/southbridge/%.o: $(src)/southbridge/%.c $(obj)/statictree.h +$(obj)/southbridge/%.o: $(src)/southbridge/%.c $(obj)/mainboard/$(MAINBOARDDIR)/statictree.h $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ Index: LinuxBIOSv3-makefiledependencies/northbridge/intel/i440bxemulation/i440bx.c =================================================================== --- LinuxBIOSv3-makefiledependencies/northbridge/intel/i440bxemulation/i440bx.c (Revision 631) +++ LinuxBIOSv3-makefiledependencies/northbridge/intel/i440bxemulation/i440bx.c (Arbeitskopie) @@ -44,7 +44,7 @@ #include <device/pci.h> #include <string.h> #include "i440bx.h" -#include "statictree.h" +#include <statictree.h>
/* Here are the ops for 440BX as a PCI domain. */
Index: LinuxBIOSv3-makefiledependencies/Makefile =================================================================== --- LinuxBIOSv3-makefiledependencies/Makefile (Revision 631) +++ LinuxBIOSv3-makefiledependencies/Makefile (Arbeitskopie) @@ -86,6 +86,7 @@ -I$(src)/include \ -I$(src)/include/arch/$(ARCH)/ \ -I$(src)/mainboard/$(MAINBOARDDIR)/ \ + -I$(obj)/mainboard/$(MAINBOARDDIR)/ \ -include $(obj)/config.h \ -include $(obj)/build.h
So, the real test here: can I build all the different targets without removing any other targets first?
thanks
ron
On 05.03.2008 16:49, ron minnich wrote:
So, the real test here: can I build all the different targets without removing any other targets first?
Not yet. There are more dependencies to fix, but it is a good start (less possible points of failure).
Regards, Carl-Daniel