diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2022-09-25 11:42:02 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2022-09-26 15:22:05 +1000 |
commit | a036cc7b0c10474a4cf1cdbe0e232e637e1f2edd (patch) | |
tree | 800a7d27a828f7cb5e1c98329eae5e07ce0a540d | |
parent | c6e92108bcd9c13ebbbcab44a49fa5f39c21621e (diff) | |
download | device-tree-compiler-a036cc7b0c10474a4cf1cdbe0e232e637e1f2edd.tar.gz |
Makefile: limit make re-execution to avoid infinite spin
make-4.4 became intentionally more eager at rebuilding outdated Makefile
includes. Currently this causes `dtc` to spin infinitely in
parser/dependency loop:
$ make
...
CHK version_gen.h
BISON dtc-parser.tab.h
DEP dtc-lexer.lex.c
DEP dtc-parser.tab.c
CHK version_gen.h
BISON dtc-parser.tab.h
DEP dtc-lexer.lex.c
DEP dtc-parser.tab.c
... # never stops
After the change build eventually fails when gets into this state:
$ make
...
CHK version_gen.h
UPD version_gen.h
DEP util.c
BISON dtc-parser.tab.h
DEP dtc-lexer.lex.c
DEP dtc-parser.tab.c
CHK version_gen.h
BISON dtc-parser.tab.h
DEP dtc-lexer.lex.c
DEP dtc-parser.tab.c
Makefile:394: *** "Make re-executed itself 10 times. Infinite recursion?". Stop.
The actual recursion will be fixed separately.
Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
Message-Id: <20220925104203.648449-1-slyich@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | Makefile | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -389,3 +389,7 @@ clean: libfdt_clean pylibfdt_clean tests_clean $(BISON) -b $(basename $(basename $@)) -d $< FORCE: + +ifeq ($(MAKE_RESTARTS),10) +$(error "Make re-executed itself $(MAKE_RESTARTS) times. Infinite recursion?") +endif |