Hi Claudio, Hi Mingli, > Le 4 sept. 2020 à 06:34, Akim Demaille <a...@lrde.epita.fr> a écrit : > > Hi Claudio, > >> Le 3 sept. 2020 à 10:20, Claudio Calvelli <b...@w42.org> a écrit : >> >> I'm including below examples of how to trigger the problem on three >> different processors, hoping that this helps somebody to reproduce >> the problem on other systems. The exact value of the "-l" option >> doesn't quite matter as I've tried small ranges, but it needs to >> be there together with the "-j" to trigger a problem. > > Thanks a lot for this bug report! This had already been reported > before (https://github.com/akimd/bison/issues/31) and a workaround > was submitted > (https://lists.gnu.org/archive/html/bison-patches/2020-05/msg00055.html). > > But I was unable to reproduce the problem and fix the core issue. > Thanks to your findings, I might be able to find the real problem > and fix it soon.
I think I have it now! I was able to reproduce it easily thanks to the -l0.5 trick, and now I can no longer get it to fail. See the fix below (which I'm pushing into the maint branch, it will be merged into master later). Thanks a lot to both of you for the report! Could you please check this tarball to confirm it does address the issue for you too? https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.1.17-99758.tar.gz https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.1.17-99758.tar.lz https://www.lrde.epita.fr/~akim/private/bison/bison-3.7.1.17-99758.tar.xz I plan to release Bison 3.7.2 tomorrow. Cheers! commit 997589035a68ef1e315901ea063cafeb273f1802 Author: Akim Demaille <akim.demai...@gmail.com> Date: Sat Sep 5 09:28:56 2020 +0200 build: fix incorrect dependencies Commit af000bab111768a04021bf5ffa4bbe91d44e231c ("doc: work around Texinfo 6.7 bug"), published in 3.4.91, added a dependency on the "all" target. This is a super bad idea, since "make all" will run this target *before* "all", which builds bison. It turns out that this new dependency actually needed bison to be built. So all the regular process (i) build $(BUILT_SOURCES) and then (ii) build bison, was wrecked since some of the $(BUILT_SOURCES) depended on bison... It was "easy" to see in the logs of "make V=1" because we were building bison files (such as src/files.o) *before* displaying the banner for "all-recursive". With this fix, we finally get again the proper sequence: rm -f examples/c/reccalc/scan.stamp examples/c/reccalc/scan.stamp.tmp /opt/local/libexec/gnubin/mkdir -p examples/c/reccalc touch examples/c/reccalc/scan.stamp.tmp flex -oexamples/c/reccalc/scan.c --header=examples/c/reccalc/scan.h ./examples/c/reccalc/scan.l mv examples/c/reccalc/scan.stamp.tmp examples/c/reccalc/scan.stamp rm -f lib/fcntl.h-t lib/fcntl.h && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ... } > lib/fcntl.h-t && \ mv lib/fcntl.h-t lib/fcntl.h ... mv -f lib/alloca.h-t lib/alloca.h make all-recursive Reported by Mingli Yu <mingli...@windriver.com>. https://github.com/akimd/bison/issues/31 https://lists.gnu.org/r/bison-patches/2020-05/msg00055.html Reported by Claudio Calvelli. https://lists.gnu.org/r/bug-bison/2020-09/msg00001.html https://bugs.gentoo.org/716516 * doc/local.mk (all): Rename as... (all-local): this. So that we don't compete with BUILT_SOURCES. diff --git a/NEWS b/NEWS index d5a816b4..52f4e3c2 100644 --- a/NEWS +++ b/NEWS @@ -13,9 +13,11 @@ GNU Bison NEWS ** Bug fixes + Fix concurrent build issues (introduced in Bison 3.5). + Push parsers always use YYMALLOC/YYFREE (no direct calls to malloc/free). - Portability issues of the test suite, and of bison itself. + Fix portability issues of the test suite, and of bison itself. Some unlikely crashes found by fuzzing have been fixed. This is only about bison itself, not the generated parsers. diff --git a/doc/local.mk b/doc/local.mk index ab5b7454..f5590015 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -57,7 +57,7 @@ MAINTAINERCLEANFILES = $(CROSS_OPTIONS_TEXI) # Fix Info's @code in @deftype # https://lists.gnu.org/archive/html/help-texinfo/2019-11/msg00004.html -all: $(srcdir)/$(%C%_bison).info.bak +all-local: $(srcdir)/$(%C%_bison).info.bak $(srcdir)/$(%C%_bison).info.bak: $(srcdir)/$(%C%_bison).info $(AM_V_GEN) $(PERL) -pi.bak -0777 \ -e 's{(^ --.*\n(?: {10}.*\n)*)}' \