This patch fixes the ugly race condition created through build_opt_tbl

running twice at the same time, overwriting its output files. This caused
a depending rule to produce an object file with no symbols in it.

This should silence up the regularly happening build failure messages on
the mailing list since we moved to the newer, much faster server.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3777 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2008-11-28 11:56:27 +00:00 committed by Patrick Georgi
parent d95e43cc8f
commit 38bee3c8b6
2 changed files with 7 additions and 14 deletions

View File

@ -179,14 +179,9 @@ makerule build_opt_tbl
action "$(HOSTCC) $(HOSTCFLAGS) $(CPUFLAGS) $< -o $@"
end
makerule option_table.c
makerule option_table.h option_table.c
depends "build_opt_tbl $(MAINBOARD)/cmos.layout"
action "./build_opt_tbl -b --config $(MAINBOARD)/cmos.layout --header option_table.h"
end
makerule option_table.h
depends "build_opt_tbl $(MAINBOARD)/cmos.layout"
action "./build_opt_tbl -b --config $(MAINBOARD)/cmos.layout --header option_table.h"
action "./build_opt_tbl -b --config $(MAINBOARD)/cmos.layout --header option_table.h --option option_table.c"
end
if HAVE_OPTION_TABLE

View File

@ -1607,6 +1607,7 @@ parser Config:
token PATH: r'[-a-zA-Z0-9_.][-a-zA-Z0-9/_.]+[-a-zA-Z0-9_.]+'
# Dir's on the other hand are abitrary
# this may all be stupid.
token RULE: r'[-a-zA-Z0-9_$()./]+[-a-zA-Z0-9_ $()./]+[-a-zA-Z0-9_$()./]+'
token DIRPATH: r'[-a-zA-Z0-9_$()./]+'
token ID: r'[a-zA-Z_.]+[a-zA-Z0-9_.]*'
token DELEXPR: r'{([^}]+|\\.)*}'
@ -1703,13 +1704,10 @@ parser Config:
[ ELSE (stmt<<C and not c>>)* ]
END
rule depsacts<<ID, C>>:
( DEPENDS STR {{ if (C): adddep(ID, STR) }}
| ACTION STR {{ if (C): addaction(ID, STR) }}
rule makerule<<C>>: MAKERULE RULE {{ if (C): addrule(RULE) }}
( DEPENDS STR {{ if (C): adddep(RULE, STR) }}
| ACTION STR {{ if (C): addaction(RULE, STR) }}
)*
rule makerule<<C>>: MAKERULE DIRPATH {{ if (C): addrule(DIRPATH) }}
depsacts<<DIRPATH, C>>
END
rule makedefine<<C>>: