summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2008-11-28 11:56:27 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2008-11-28 11:56:27 +0000
commit38bee3c8b6ca49031b30e3a8f974fe0690560de3 (patch)
treeba91ee2e9fed5fef82f68edf8c99c338768a1fe3
parentd95e43cc8f66203a8287f8a7c54ecc3ab74436e6 (diff)
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
-rw-r--r--src/config/Config.lb11
-rw-r--r--util/newconfig/config.g10
2 files changed, 7 insertions, 14 deletions
diff --git a/src/config/Config.lb b/src/config/Config.lb
index 43d6ecdeb0..a9de434071 100644
--- a/src/config/Config.lb
+++ b/src/config/Config.lb
@@ -179,21 +179,16 @@ 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
object ./option_table.o
end
-makerule clean
+makerule clean
action "rm -f coreboot.* *~"
action "rm -f coreboot"
action "rm -f ldscript.ld"
diff --git a/util/newconfig/config.g b/util/newconfig/config.g
index 26cee432dc..93e36bbde2 100644
--- a/util/newconfig/config.g
+++ b/util/newconfig/config.g
@@ -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>>: