mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-11-01 18:04:12 +08:00
sdcc: fix the device library race in parallel builds
The mcs51 library target writes into ../build/$(PORT) without depending on it, so with -j the archiver can start before the directory exists and the toolchain build fails with sdar: ../build/small/mcs51.lib: No such file or directory It is intermittent: the same tree builds fine on a retry.
This commit is contained in:
1 parent
01fc5db9a3
commit
8954637bbc
1 file changed
+23
@@ -0,0 +1,23 @@
|
|||||||
|
Parallel builds race: the library target writes into ../build/$(PORT) but does
|
||||||
|
not depend on it, so with -j the archiver can run before the directory exists:
|
||||||
|
|
||||||
|
sdar: ../build/small/mcs51.lib: No such file or directory
|
||||||
|
|
||||||
|
Give the target an order-only dependency on its output directory.
|
||||||
|
|
||||||
|
Index: device/lib/mcs51/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- device/lib/mcs51/Makefile.in (revision 17011)
|
||||||
|
+++ device/lib/mcs51/Makefile.in (working copy)
|
||||||
|
@@ -30,7 +30,10 @@
|
||||||
|
|
||||||
|
all: $(PORTDIR)/$(LIB)
|
||||||
|
|
||||||
|
-$(PORTDIR)/$(LIB): $(OBJ) Makefile
|
||||||
|
+$(PORTDIR):
|
||||||
|
+ mkdir -p $@
|
||||||
|
+
|
||||||
|
+$(PORTDIR)/$(LIB): $(OBJ) Makefile | $(PORTDIR)
|
||||||
|
ifeq ($(LIB_TYPE), SDCCLIB)
|
||||||
|
rm -f $@; \
|
||||||
|
$(top_builddir)/bin/sdcclib -a $@ $(OBJ)
|
||||||
Reference in new issue
Block a user