[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build problems: bison 3.7.1 + other versions

From: Akim Demaille
Subject: Re: Build problems: bison 3.7.1 + other versions
Date: Sat, 5 Sep 2020 09:58:51 +0200

Hi Claudio, Hi Mingli,

> Le 4 sept. 2020 à 06:34, Akim Demaille <akim@lrde.epita.fr> a écrit :
> Hi Claudio,
>> Le 3 sept. 2020 à 10:20, Claudio Calvelli <bugb@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?


I plan to release Bison 3.7.2 tomorrow.


commit 997589035a68ef1e315901ea063cafeb273f1802
Author: Akim Demaille <akim.demaille@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 
        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.yu@windriver.com>.
    Reported by Claudio Calvelli.
    * 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
 # 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)*)}'      \

reply via email to

[Prev in Thread] Current Thread [Next in Thread]