[coreboot] Recent v2 abuild breakage
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Thu Oct 16 16:05:41 CEST 2008
On 16.10.2008 12:16, Carl-Daniel Hailfinger wrote:
> Hi!
>
> The recent v2 abuild breakage we're seeing since the move to a new
> massively multiprocessor server may have been caused way back by r3564.
> AFAICS it seems the dependency rules on romcc cause it to be compiled
> twice if certain race conditions happen.
> The v2 build system is sort of a mystery to me, so the following may or
> may not work. I think I can fix this by compiling romcc into a temp file
> and moving the temp file in the right place afterwards. That makes sure
> no two compiler processes try to output to the same file at the same
> time and it also makes sure that the romcc binary will always be runnable.
>
> Any hints or better fixes are appreciated.
>
This should fix it.
Can we PLEASE kill v2 ASAP? Thanks!
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Index: LinuxBIOSv2-tmp2/src/config/Config.lb
===================================================================
--- LinuxBIOSv2-tmp2/src/config/Config.lb (Revision 3659)
+++ LinuxBIOSv2-tmp2/src/config/Config.lb (Arbeitskopie)
@@ -162,9 +162,16 @@
action "doxygen corebootDoc.config"
end
+# Yes, the rule doesn't seem to make sense, but multiple images could try to
+# create a romcc binary at the same time, clobbering each other.
+# Our makefile architecture won't allow us to easily have the romcc target
+# in the main makefile, so keep it here and move the race condition winner
+# in place. That way, romcc may get compiled twice, but the binary will always
+# be in a correct and valid state if it exists because the move is atomic.
makerule ../romcc
depends "$(TOP)/util/romcc/romcc.c"
- action "$(HOSTCC) -g $(HOSTCFLAGS) $< -o $@"
+ action "$(HOSTCC) -g $(HOSTCFLAGS) $< -o romcc.tmpfile"
+ action "mv romcc.tmpfile $@"
end
makerule build_opt_tbl
--
http://www.hailfinger.org/
More information about the coreboot
mailing list