Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dtc for openSUSE:Factory checked in at 2022-10-01 17:41:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dtc (Old) and /work/SRC/openSUSE:Factory/.dtc.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dtc" Sat Oct 1 17:41:46 2022 rev:39 rq:1006380 version:1.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/dtc/dtc.changes 2022-04-23 19:45:06.438922050 +0200 +++ /work/SRC/openSUSE:Factory/.dtc.new.2275/dtc.changes 2022-10-01 17:41:50.693526705 +0200 @@ -1,0 +2,6 @@ +Mon Sep 26 07:37:52 UTC 2022 - Andreas Schwab <[email protected]> + +- makefile-bison-rule.patch: Makefile: fix infinite recursion by dropping + non-existent `%.output` + +------------------------------------------------------------------- New: ---- makefile-bison-rule.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dtc.spec ++++++ --- /var/tmp/diff_new_pack.U1S9zI/_old 2022-10-01 17:41:51.225527676 +0200 +++ /var/tmp/diff_new_pack.U1S9zI/_new 2022-10-01 17:41:51.233527690 +0200 @@ -27,6 +27,7 @@ Source1: https://mirrors.edge.kernel.org/pub/software/utils/dtc/dtc-%{version}.tar.sign Source20: baselibs.conf Source21: dtc.keyring +Patch0: makefile-bison-rule.patch BuildRequires: bison BuildRequires: flex BuildRequires: libyaml-devel @@ -59,6 +60,7 @@ %prep %setup -q +%patch0 -p1 %build %make_build EXTRA_CFLAGS="%{optflags} -pie" LDFLAGS="%{optflags}" ++++++ makefile-bison-rule.patch ++++++ >From 98a07006c48dc0bc3f42b3b3ce75b7f03e87e724 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich <[email protected]> Date: Sun, 25 Sep 2022 11:42:03 +0100 Subject: [PATCH] Makefile: fix infinite recursion by dropping non-existent `%.output` Without the change GNU `make-4.4` falls into infinite recursion of trying to generate %.output files (bison is not passed flags to generate debug output). This happens on GNU `make-4.4` only after GNU make change to more eagerly rebuild all target outputs in multiple targets: https://savannah.gnu.org/bugs/index.php?63098 The recursion here is the following: - Makefile depends on *.d files - *.d files depend on *.c files - *.c files are generated by bison - bison is triggered whenever some of it's multiple targets are missing In our case `%.output` is always missing and bison is always reran. *.d files are always regenerated on `make` run. And make is always restarted as *.d files are always regenerated. The fix removes infeasible `%.output`. Signed-off-by: Sergei Trofimovich <[email protected]> Message-Id: <[email protected]> Signed-off-by: David Gibson <[email protected]> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e7a0dcb..d4e7551 100644 --- a/Makefile +++ b/Makefile @@ -384,7 +384,7 @@ clean: libfdt_clean pylibfdt_clean tests_clean @$(VECHO) LEX $@ $(LEX) -o$@ $< -%.tab.c %.tab.h %.output: %.y +%.tab.c %.tab.h: %.y @$(VECHO) BISON $@ $(BISON) -b $(basename $(basename $@)) -d $< -- 2.37.3
