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

Reply via email to